0

我试图在 jQuery 结果集中找到空输入类型,如文本框、选择和 li 元素。我的结果集是(必填字段) -

$requiredFields = $(".f-form-required.f-form-field").filter(function(){
   if($(':input:not([type="hidden"])'))
      return $(this);
  }); 

在该结果集上,我想查询空输入,如文本框、选择和 li 元素。但似乎我做错了什么。有人可以建议我如何做到这一点。

目前我这样做是为了得到空的文本框但不工作 -

 var emptyInputs = 0;
 $requiredFields.filter(function(){
  $('input[type=text]').each(function(){
       if (this.val == "") {
         emptyInputs = emptyInputs + 1;         
       } 
   }); 
}); 

我正在尝试通过 $requiredFields 集合找出空的下拉/选择元素和列表/ li 元素。

4

2 回答 2

4

没有val财产。尝试.val()改用或this.value

var emptyInputs = 0;
$requiredFields.filter(function(){
    $('input[type=text]').each(function(){
        if (jQuery(this).val()  == "") {
            emptyInputs = emptyInputs + 1;         
        } 
    }); 
}); 

或者:

var emptyInputs = 0;
$requiredFields.filter(function(){
    $('input[type=text]').each(function(){
        if (this.value  == "") {
            emptyInputs = emptyInputs + 1;         
        } 
    }); 
}); 
于 2013-11-07T19:27:24.703 回答
0

我认为您没有像预期的那样使用 .filter() 。考虑这样的事情:

<html>
<body>
    <div>
       <input type="text" id="text1" class="f-form-required f-form-field" />
       <input type="text" id="text2" class="f-form-required f-form-field" value="test" />
       <input type="text" id="text3" class="f-form-required f-form-field" />
    </div>
</body>
</html>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>    
<script type="text/javascript">
    function test(){
        var $requiredFields = $('.f-form-required.f-form-field');

        var $errorFields = $requiredFields.filter(function () {
            var $this = $(this);
            return $this.is('input') && $this.val() === '';
        });
        var errorCount = $errorFields.length;

        console.log('errors:' + errorCount);
    }


    $(document).ready(function(){
        test();
    }
</script>
于 2013-11-07T19:39:20.157 回答