javascript - 一旦总和达到 100,禁用其余数字框

标签 javascript jquery

我正在进行一个设置,其中表中有多行要求输入数字。我想在总和达到 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/

相关文章:

javascript - 点击时无法停止音频

javascript - 让 div 顶部位置每 x 秒更改一次

javascript - 查看更多按钮不起作用

圆括号中的 JavaScript 字符串

javascript - 我如何引用 JSON 列表中的特定元素?

javascript - 多个键的 JSON 过滤运行缓慢

jquery - 动画 GIF 在显示后不会开始动画

javascript - 如何禁止在 Kendo DatePicker 中输入文本字符?

jquery - 如何删除 jquery ui Accordion 中的左右边距?

javascript - CSS:侧边栏 100% 显示高度,不重叠导航栏。 (个人导航高度)