我有这段代码:
<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
给了我一个错误。
答案 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链接