在集合中查找空输入元素 - jQuery

时间:2013-11-07 19:21:58

标签: javascript jquery html

我试图在jQuery结果集中找到像textbox,select和li元素这样的空输入类型。 我的结果集是(requiredfields) -

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

在该结果集上,我想查询空输入,如textbox,select和li元素。但似乎我做错了什么。有人可以建议我怎么做。

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

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

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

2 个答案:

答案 0 :(得分: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;         
        } 
    }); 
}); 

答案 1 :(得分: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>