我有几个文本输入,我想计算另一个输入值的总和。只要用户在其中一个输入中输入值,就必须立即执行此操作。我打算为此使用jQuery,我想为每个输入添加一个类名,比如class =“input1”,class =“input2”等等。
我的问题是我不知道要添加所有这些值,并且鉴于我有超过50个输入,我不想“手动添加它们”。
感谢任何形式的帮助。
答案 0 :(得分:4)
如果您将要添加的所有输入与input1
,input2
等类一起添加,这将获得所有这些输入中当前值的总和
var sum = 0;
$("input[class *= 'input']").each(function(){
sum += +$(this).val();
});
然后自然如果你想把这个值放在id destination
$("#destination").val(sum);
这是fiddle
修改强>
如果您希望在更改任何的任何文本框时运行,那么您可以将其置于更改事件处理程序中
$(document).on("change", "input[class *= 'input']", function() {
var sum = 0;
$("input[class *= 'input']").each(function(){
sum += +$(this).val();
});
$("#destination").val(sum);
});
这是fiddle
修改强>
根据雅斯贝斯的评论,如果您知道input1
,input2
等,始终将成为您输入的第一个类,即您从不做
<input class='someNewClass input1'
然后你可以
$("input[class ^= 'input']").each(function(){
^=
表示开头,而*=
表示包含任意位置。
答案 1 :(得分:1)
给他们一个通用名称,你需要解析这个值,因为它最初是文本
var result= 0;
$("input[name='sum']").each(function(){
result = result + parseInt($(this).val(),10);
});