Javascript jQuery计数具有值的输入字段数

Javascript jQuery计数具有值的输入字段数,javascript,jquery,Javascript,Jquery,在输入字段中输入值时,我想计算该行中总共有多少输入字段有值 <div class="row"> <input type="text" class="input input1" /> <input type="text" class="input input2" /> <input type="text" class="input input2" /> </div> <div class="row">

在输入字段中输入值时,我想计算该行中总共有多少输入字段有值

<div class="row">
    <input type="text" class="input input1" />
    <input type="text" class="input input2" />
    <input type="text" class="input input2" />
</div>

<div class="row">
    <input type="text" class="input input1" />
    <input type="text" class="input input2" />
    <input type="text" class="input input2" />
</div>
jsiddle链接:

使用
$(field).val()
,您将检索
字段中第一个元素的值。改用
$(this).val()

$('.input').keyup(函数(){
变量字段=$(this.parent().children('.input');
var计数=0;
$(字段)。每个(函数(){
if($(this.val()){
计数++;
}
});
控制台日志(计数);
});

使用
$(field).val()
,您将检索
字段中第一个元素的值。改用
$(this).val()

$('.input').keyup(函数(){
变量字段=$(this.parent().children('.input');
var计数=0;
$(字段)。每个(函数(){
if($(this.val()){
计数++;
}
});
控制台日志(计数);
});

您可以使用。首先选择图元,然后在其是否有值时对其进行过滤:

函数示例(){
常量$row=$('.row');
常量长度=$row.find('input').filter(函数(){
返回this.value.length!==0;
}).长度;
控制台日志(长度);
}

按我您可以使用。首先选择图元,然后在其是否有值时对其进行过滤:

函数示例(){
常量$row=$('.row');
常量长度=$row.find('input').filter(函数(){
返回this.value.length!==0;
}).长度;
控制台日志(长度);
}


按我您在找到的字段中循环,但使用了相同的字段变量,该变量包含所有字段以查找值。相反,你必须这样做-

$('.input').keyup(function () {

    var field = $(this).parent().find('.input');
    var count = 0;

    $(field).each(function (i) {
        var len = $(this).val().length;     
        if (len > 0 ) {
            count++;
        }
    });

  alert(count);

});

Fiddle:

您在已找到的字段中循环,但使用了相同的字段变量,该变量包含所有字段以查找值。相反,你必须这样做-

$('.input').keyup(function () {

    var field = $(this).parent().find('.input');
    var count = 0;

    $(field).each(function (i) {
        var len = $(this).val().length;     
        if (len > 0 ) {
            count++;
        }
    });

  alert(count);

});
Fiddle:

从引用到,您还可以创建一个自定义选择器,然后仅获取具有值的
输入

jQuery.expr[':'].hasValue=function(el,index,match){
返回el.value!=“”;
};
$('.input').keyup(函数(){
log($(this.parent().find('input:hasValue').length);
});

从引用到,您还可以创建自定义选择器,然后仅获取具有值的
输入

jQuery.expr[':'].hasValue=function(el,index,match){
返回el.value!=“”;
};
$('.input').keyup(函数(){
log($(this.parent().find('input:hasValue').length);
});


off-topic:您可能会发现更容易使用与其包含内容匹配的变量名-在本例中,
var-fields=…输入列表…
then
$(字段)。每个(函数(i,e){var-field=$(e);field.val()…}
off-topic:您可能会发现更容易使用与其包含内容匹配的变量名-在本例中,
var-fields=…输入列表…
then
$(字段)。每个(函数(i,e){var-field=$(e);field.val()…}