一旦总和达到100,就禁用其余的数字框
Disable rest of the numeric boxes once sum reaches 100
本文关键字:数字 更新时间:2023-09-26
我正在进行一个设置,在该设置中,表中有多行要求输入数字。一旦总和达到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。。所以你必须小心在楠的情况下返回0。将以上行更改为
sum += parseInt($(this).find("input:text:last").val()) || 0;
此外,您必须使用此代码过滤掉所有空的inputs
$('input:text').filter(function() { return $(this).val() == ""; })
然后禁用它。
这是一个工作Fiddle
尝试使用此代码,我认为此代码将满足您的需求:)
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").each(function(){
if($(this).val() == '')
$(this).prop('disabled', true);
});
}
else{
$("input").each(function(){
if($(this).val() == '')
$(this).prop('disabled', false);
});
}
});
}
您的求和不起作用,因为当您尝试对空值求和时,它会生成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/作为一个工作示例。
相关文章:
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 测试索引值是否等于某个数字的倍数
- 将数字转换为一定数量的硬币
- 键入最后一位数字后自动提交
- 如何在javascript中迭代数字列表
- Javascript逻辑运算符和字符串/数字
- 如何在javascript中获得与特定数字相等的随机数
- 如果元素's的ID以数字开头
- 递增一个数字而不去掉前导零
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 如何在这里将两个值最低的数字相加
- 如何删除除冒号、数字和'上午'或者'下午'
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- Javascript排序字符串或数字
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 将数字四舍五入到小数点后两位
- 我如何在数字插入中使用逗号,这样它就不会'不要破坏我的输入字段
- 正则表达式与数字中的第二个点匹配
- 制作一个regex来验证只有一个数字的字符串
- 分开的数字和字母