我有一个很大的形式,它采用货币价值,并在最后有一笔总和。我试图使用javascript(jQuery)自动更新总数。某些输入字段是可选的。我正在寻找使用.change()方法。有没有比将变更方法与每个输入字段相关联更好的方法?
脚本只需要从输入字段中获取值(如果有的话),将它们添加起来并在某处显示总数。我的想法是标记每个相关的输入字段并选择它们。这可能吗?
[编辑] 示例代码:
<input name="input1" type"text" />
<input name="input2" type"text" />
<input name="input3" type"text" />
<input name="input4" type"text" />
<input name="input5" type"text" />
<input name="input6" type"text" />
<input name="total" type="text" />
所有输入最初都是空白的。当我在输入中输入值时,我希望总数更新。
答案 0 :(得分:4)
如果你将一个类(称之为"foo"
)添加到你想要总计的每个输入元素,那么这将有效:
var $form = $('#my-form-id'),
$summands = $form.find('.foo'),
$sumDisplay = $('some-other-selector');
$form.delegate('.foo', 'change', function ()
{
var sum = 0;
$summands.each(function ()
{
var value = Number($(this).val());
if (!isNaN(value)) sum += value;
});
$sumDisplay.text(sum);
});
答案 1 :(得分:2)
我认为这样可行。将更改事件附加到课程。我认为最简单的方法是在更改回调中循环遍历集合并总结所有值。你可以根据需要使用当前更改的项目的值,但出于某种原因,我觉得重新计算可能更安全。
$(".money").change(function(){
var total = 0;
$(".money").each(function(){
total += $(this).val();
}
//now you can use total
});