Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何等待第一列中的所有表行都显示为100;“完成”;在第二栏_Javascript_Jquery - Fatal编程技术网

Javascript 如何等待第一列中的所有表行都显示为100;“完成”;在第二栏

Javascript 如何等待第一列中的所有表行都显示为100;“完成”;在第二栏,javascript,jquery,Javascript,Jquery,我有一个表,它的行数是动态的,取决于数据库记录。因此,不管表行数是多少,当第一列中的所有行都是100时,第二列中的所有行都将显示“完成” 现在,当我在第一行输入100时,第二列中的所有行都将显示“完成”。如何等到第1列中的所有行都是100才显示“完成” $(“.test”).on('keyup',function(){ var set=$('.test').val(); 如果(设置==100){ $('.result').val(“完成”); } }); 以下是实现这一目标的方法之一。使用in

我有一个表,它的行数是动态的,取决于数据库记录。因此,不管表行数是多少,当第一列中的所有行都是100时,第二列中的所有行都将显示“完成”

现在,当我在第一行输入100时,第二列中的所有行都将显示“完成”。如何等到第1列中的所有行都是100才显示“完成”

$(“.test”).on('keyup',function(){
var set=$('.test').val();
如果(设置==100){
$('.result').val(“完成”);
}
});

以下是实现这一目标的方法之一。使用
input
事件而不是
keyup

在每个事件中,检查所有输入字段是否都有值

如果所有字段都有值,请检查是否所有字段的值都为100

$(“.test”).on('input',function(){
checkAndUpdateSecondColumn();
});
函数checkAndUpdateSecondColumn(){
var empty=$(“input.test”).filter(函数(){
返回此值!=“”;
});
if($((“input.test”).length==empty.length){
var sum=$('.test').toArray().reduce(函数(和,元素){
返回和+数字(元素值);
}, 0);
$('.result').val('');
如果(总和=$(“input.test”).length*100){
$('.result').val('done');
}
}
}

以下是实现这一目标的方法之一。使用
input
事件而不是
keyup

在每个事件中,检查所有输入字段是否都有值

如果所有字段都有值,请检查是否所有字段的值都为100

$(“.test”).on('input',function(){
checkAndUpdateSecondColumn();
});
函数checkAndUpdateSecondColumn(){
var empty=$(“input.test”).filter(函数(){
返回此值!=“”;
});
if($((“input.test”).length==empty.length){
var sum=$('.test').toArray().reduce(函数(和,元素){
返回和+数字(元素值);
}, 0);
$('.result').val('');
如果(总和=$(“input.test”).length*100){
$('.result').val('done');
}
}
}

代码的问题是,当您分配变量
集时,您试图读取包含多个DOM元素的jQuery集合的
.val()
。返回第一个匹配元素的值;其他的没有被评估

听起来您想要做的是评估整个集合,并确保在显示“完成”消息之前,所有集合都与您想要的值匹配。实现此行为的一种方法是根据jQuery集合中每个元素的值进行过滤(类的每个元素
“test”


代码的问题在于,当分配变量
set
时,您试图读取包含多个DOM元素的jQuery集合的
.val()
。返回第一个匹配元素的值;其他的没有被评估

听起来您想要做的是评估整个集合,并确保在显示“完成”消息之前,所有集合都与您想要的值匹配。实现此行为的一种方法是根据jQuery集合中每个元素的值进行过滤(类的每个元素
“test”

var testInputs = $('.test');
var desiredValue = 100;

testInputs.on('keyup', function() {
    var testInputsSetToDesiredValue = testInputs.filter(function() {
        return parseInt(this.value, 10) === desiredValue;
    });
    if (testInputsSetToDesiredValue.length === testInputs.length) {
        $('.result').val('done');
    }
});