我需要输入中所有值的总和。结果必须显示在readonly
的输入字段总计中。
用户可以输入1个或更多值。问题是我的var
值不正确。我还想知道如何通过onchange
立即返回值?
$(document).ready(function() {
$("div#example input").change(function() {
var value = '';
$("div#example input[name!=total]").each(function() {
value += $(this).val();
});
console.log("value after each: " + value);
});
})
HTML:
<div id="example">
<input type="text" size="5" id="value1" name="value1" />
<input type="text" size="5" id="value2" name="value2" />
<input type="text" size="5" id="value3" name="value3" />
<input type="text" size="5" id="value4" name="value4" />
<input type="text" size="5" id="value5" name="value5" />
<input type="text" size="5" id="total" readonly="readonly" class="bckground" name="total" />
答案 0 :(得分:4)
尝试这样的事情:
$(document).ready(function() {
$("div#example id^='value'").change(function() {
var value = 0;
$("div#example input[name!=total]").each(function() {
var i = parseInt($(this).val());
if (!isNaN(i))
{
value += i;
}
});
$('#total').val(value);
});
})
答案 1 :(得分:2)
使用+ = parseInt($(this).val());
答案 2 :(得分:1)
var sum = 0;
$('input[id^=value]').each (function(){ sum+=$(this).val(); });
$('#total').val( sum );
:
答案 3 :(得分:0)
我认为这可能更接近:
<script type="text/javascript">
$(document).ready(function() {
$("#example value").change(function() {
var total = 0;
$("#example value").each(function() {
total += parseInt($(this).val());
});
window.console && console.log("value after each: " + total);
});
})
</script>
<div id="example">
<input type="text" size="5" class="value" name="value1" />
<input type="text" size="5" class="value" name="value2" />
<input type="text" size="5" class="value" name="value3" />
<input type="text" size="5" class="value" name="value4" />
<input type="text" size="5" class="value" name="value5" />
<input type="text" size="5" id="total" readonly="readonly" class="bckground" name="total" />
</div>
$ .change()的原始选择器包括总框,我怀疑你不想要。
我猜你想要添加数字是否正确?您原来的'value'变量是一个字符串。
顺便说一下,使用'window.console&amp;&amp; console.log'idiom,因为很多用户都没有控制台变量。 (虽然我打赌那行只是用于调试。)
修改强>
根据其他建议添加了parseInt()。
答案 4 :(得分:0)