检查多个文本字段是否为空jQuery

时间:2014-10-15 09:29:39

标签: jquery

这可能很简单,但我在这里遇到了困难。我在.um_frm的所有字段中运行所需的属性,然后检查所有字段是否都为空。我的问题是,即使填写了一个字段,它也不会检查所有字段,而是通过它。如何确保填写所有字段?

$('#um_ok').on( 'click', function() {
      $('.um_frm').attr('required','required'); 
      var value=$.trim($(".um_frm").val()); 
      if(value.length === 0){
          //proceed...
      }
});

我也试过这个,但并不是太过分了

$('#um_ok').on( 'click', function() {
       $('.um_frm').attr('required','required'); 
       if($.trim($(".um_frm").val()) === ""){
           //proceed...
       }
 });

3 个答案:

答案 0 :(得分:4)

使用过滤器查看是否有任何字段为空(长度真实,即0,因此为!):

$('#um_ok').on( 'click', function() {
      $('.um_frm').attr('required','required'); 

      var anyBlank = $(".um_frm").filter(function(){
          return !$.trim($(this).val()).length;
      }).length; 

      // If not any blanks...
      if(!anyBlank){
          //proceed...
      }
});

更新:(感谢@George)

由于required是一个真正的HTML元素属性,而不仅仅是一个属性,您应该使用prop(然后可以将更可读的布尔值作为其开/关状态):

      $('.um_frm').prop('required', true); 

这样做的好处是可以创建没有值的清除required属性(而不是required="required"等)。

答案 1 :(得分:1)

工作FIDDLE

使用以下

$('#um_ok').on('click', function () {
    var status = true;
    $('.um_frm').each(function () {
        if ($.trim($(this).val()) == '') {
            status = false;
        }
    });
    if (status) {
        alert("all r ok");
    } else {
        alert("sumthng missing");
    }
});

答案 2 :(得分:0)

希望这样做

var left_blank =$('#um_ok').on( 'click', function() {
                    $(".um_frm").filter(function () {
                      return !$.trim($(this).val()).length;
                  }).length;
               });
if(!left_blank){
    //proceed
}