我正在进行一个设置,其中表中有多行要求输入数字。我想在总和达到 100 时立即禁用其余文本框。
我的警报运行正常,但无法选择空文本框来禁用它们。另外,只有当我在第一个输入框中输入 100 时,警报才会起作用。对于其余的框,甚至警报也不起作用。
请帮忙,下面是我的代码-
function checkTotal() {
var sum=0;
$("#fieldset_Q14 table tbody tr").each(function() {
sum += parseInt($(this).find("input:text:last").val());
if (sum==100) {
//alert("test");
$("input:text[value='']").prop('disabled',true);
}
else{
$("input:text[value='']").prop('disabled',false);
}
})
}
$(document).ready(checkTotal);
$("input:text").keyup(checkTotal);
最佳答案
问题出在这行代码上。
sum += parseInt($(this).find("input:text:last").val());
当你parseInt
清空文本框时,它将返回NaN..所以你必须注意在Nan的情况下返回0。将上面的行更改为
sum += parseInt($(this).find("input:text:last").val()) || 0;
此外,您还必须使用此代码过滤掉所有空的输入
$('input:text').filter(function() { return $(this).val() == ""; })
然后禁用它..
这是一个 Working Fiddle
关于javascript - 一旦总和达到 100,禁用其余数字框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37187300/