我正在寻找一些Javascript代码来计算多个HTML输入值的总和。关闭输入的数量是动态的,所以我正在寻找类似“为每个”输入的东西。
数字格式为1 000,00(空格为千位分隔符,小数分隔符)。
我的输入是和数组,所以ID和NAME是这样的:
input_sum1[0]
input_sum1[1]
input_sum1[2]
input_sum2[0]
input_sum2[1]
input_sum2[2]
有什么建议吗?
提前致谢!
答案 0 :(得分:7)
一个jQuery示例。为文本框提供了一个类名。
<script>
$(document).ready ( function () {
$("#btn1").click ( function () {
var resultVal = 0.0;
$(".test").each ( function() {
resultVal += parseFloat ( $(this).val().replace(/\s/g,'').replace(',','.'));
});
alert ( resultVal );
});
});
</script>
<input type="text" value="10" class="test" />
<input type="text" value="20" class="test" />
<input type="text" value="30.50" class="test" />
<input type="text" value="1" class="test" />
<input type="text" value="1" class="test" />
<br />
<button id="btn1">click</button>
答案 1 :(得分:1)
id
,让生活更轻松。document.getElementById
获取对表单对象的引用(或者如果您使用的是Prototype或jQuery,则可以使用简写方法)。elements
数组。value
属性;它将是一个字符串。parseFloat
获取值。答案 2 :(得分:1)
您没有在JavaScript中获得可识别区域设置的数字解析,因此您必须进行字符串替换才能获得parseFloat()
将要处理的内容:
<div id="inputs">
<input type="text" />
<input type="text" />
...
</div>
<p>
<input type="button" id="summer" value="Sum" />
<input type="text" id="sum" />
</p>
<script type="text/javascript">
document.getElementById('summer').onclick= function() {
var sum= 0;
var inputs= document.getElementById('inputs').getElementsByTagName('input');
for (var i= inputs.length; i-->0;) {
var v= inputs[i].value.split(',').join('.').split(' ').join('');
if (isNaN(+v))
alert(inputs[i].value+' is not a readable number');
else
sum+= +v;
}
document.getElementById('sum').value= sum;
};
</script>
(如果您不希望提交纯粹的客户端内容,则不需要&lt; form&gt;元素或任何输入名称。)
请注意,这使用浮点数,因此0.1和0.2之和可能与您的想法不完全相同。如果您正在查看金额,浮点数不合适,您将不得不提出一个定点或基于十进制的数字解析器。