我正在设置一个设置,我在表中有多行要求输入数字。我想在总和达到100时立即禁用其余的文本框。
我的状态警报工作正常,但无法选择空文本框以禁用它们。此外,仅当我在第一个输入框中输入100时,警报才有效。对于剩余的盒子,即使警报也不起作用。
请帮忙,下面是我的代码 -
int search_max(link h, int currmax){
int max;
if (h == NULL)
return currmax;
else if (h->item->acc > currmax){
currmax = h->item->acc;
max = search_max(h->l,currmax);
if (max > currmax)
currmax = max;
max = search_max(h->r, currmax);
if (max > currmax)
currmax = max;
return currmax;
}
答案 0 :(得分:0)
问题在于这行代码。
sum += parseInt($(this).find("input:text:last").val());
当您parseInt
清空文本框时,它将返回 NaN ..因此,如果是Nan,您必须注意返回0。将上面的行更改为
sum += parseInt($(this).find("input:text:last").val()) || 0;
此外,您必须使用此代码
过滤掉所有空的inputs
$('input:text').filter(function() { return $(this).val() == ""; })
然后禁用它..
答案 1 :(得分:0)
尝试使用此代码我认为此代码将满足您的要求:)
get
答案 2 :(得分:0)
您的总和不起作用,因为当您尝试对空值求和时,它会生成NaN结果。此外,您可以在完成总和计算后比较结果。
function checkTotal() {
var sum=0;
$("#fieldset_Q14 table tbody tr").each(function() {
var num = parseInt($(this).find("input:text:last").val()) || 0;
sum += parseInt(num);
});
if (sum==100) {
$('input:text').filter(function() { return this.value == ""; }).prop('disabled',true);
}
else {
$('input:text').filter(function() { return this.value == ""; }).prop('disabled',false);
}
}
有关工作示例,请参阅https://jsfiddle.net/p556xprt/。