Javascript,如果$(reviewForm).serialize()上的值为空,则发出警报?

时间:2012-01-29 20:52:04

标签: javascript jquery

我正在使用JS提交表单,如果任何字段为空,我想取消提交。

我通过以下方式获取所有值:$(reviewForm).serialize()

返回类似的内容:

id=2&text=aaaa&rating=2&gender=

如果表单中的任何值为空,我该如何显示警告?

3 个答案:

答案 0 :(得分:1)

  

var serialized = $(reviewForm).serialize();

if(serialized.indexOf('=&') > -1 || serialized.substr(serialized.length - 1) == '='){
   //you've got empty values
}

使用jQuery,您可以在序列化之前测试它:

$(reviewForm).find('input').each(function(idx, elem){
   if($(elem).val().length == 0){
       //this field is empty
   }
});

答案 1 :(得分:1)

在提交表单之前,您可以执行以下操作。

if($(reviewForm).find('input, select, textarea').filter(function(){
      return $(this).val() == '';
   }).length > 0){
      alert('Enter all the values');
}
else{
    //Submit the form here
}

答案 2 :(得分:0)

这将检查空字段,返回字段名称的数组,并警告有多少字段为空。检查演示文稿的小提琴:http://jsfiddle.net/brentmn/Pwngn/

$('form').submit(function(){
    var s = $(this).serialize();
    var empty = $.grep(s.split('&'), function(field){
        //get empty fields
        return field.split('=')[1] === '';
    }).map(function(arr){
        //return field name of empty field
        return arr.split('=')[0];
    });
    alert(empty.length + ' empty fields');
    return !empty.length;
});