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

Javascript, alert if a value on $(reviewForm).serialize() is blank?

本文关键字:如果 reviewForm serialize Javascript      更新时间:2023-09-26

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

我用$(reviewForm).serialize() 获取所有值

它返回类似于:

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

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

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
   }
});

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

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

这将检查空字段,返回字段名数组,并提醒有多少字段是空的。查看小提琴的演示: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;
});