如何在我的输入值和chage中添加总和

时间:2015-09-11 07:24:49

标签: javascript jquery html

我有这段代码:

<input id=​"InvoiceItemPrice:​:​:​:​" name=​"InvoiceItemPrice:​:​:​:​" value size=​"6">​
<input id=​"InvoiceItemPrice:​:​1:​:​" name=​"InvoiceItemPrice:​:​1:​:​" value=​"46.00" size=​"6">​
<input id=​"InvoiceItemPrice:​:​2:​:​" name=​"InvoiceItemPrice:​:​2:​:​" value=​"79.00" size=​"6">​, 
<input id=​"InvoiceItemPrice:​:​3:​:​" name=​"InvoiceItemPrice:​:​3:​:​" value=​"14.00" size=​"6">​

我喜欢在输入类型的每个值中添加总和我有这个代码:

var sum = 100/123;
$('input[name="InvoiceItemPrice::2::"]').each(function()
{
    sum *= parseFloat($(this).val());
});
$('input[name="InvoiceItemPrice::2::"]').val(sum);

如何更改所有输入的所有值。

我尝试使用此$("input [name = ' * InvoiceItemPrice ']"),但我抓住了第一个没有值的NaN给了我一个错误。

1 个答案:

答案 0 :(得分:1)

正在发生的事情是你的sum变量会在你的每个语句中被重复使用,如果你在每个语句中更改了那一行你应该是A-ok。

我在这里创建了一个jsFiddle https://jsfiddle.net/r79d3121/3/可能有帮助

HTML

<input id="InvoiceItemPrice::::" name="InvoiceItemPrice::::" value size="6">
<input id="InvoiceItemPrice::1::" name="InvoiceItemPrice::1::" value="46.00" size="6">
<input id="InvoiceItemPrice::2::" name="InvoiceItemPrice::2::" value="79.00" size="6">,
<input id="InvoiceItemPrice::3::" name="InvoiceItemPrice::3::" value="14.00" size="6">

的jQuery

var sum = parseFloat(100 / 123);
$(function () {
    var result = 0;
    $('[id*="InvoiceItemPrice"]').each(function () {
        $(this).val(parseFloat((parseFloat($(this).val()) * parseFloat(sum))));
    });
});

更新为仅更改所选输入的值

第二次更新,文档准备好后计算值,如果要更新值,可以随时检查每个输入上的.focusout(),然后运行代码来计算值

第3次更新,html又回到了原版,你也可以在我提供的jQuery中使用部分选择器并更新jsFiddle链接