<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sum of all TextBox values using jQuery</title>
<script type="text/javascript"
src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js">
</script>
<script type="text/javascript">
$(function() {
$("#addAll").click(function() {
var add = 0;
$(".amt").each(function() {
add -= Number($(this).val());
});
$("#para").text("Sum of all textboxes is : " + add);
});
});
</script>
</head>
<body>
<input id="Text1" class="amt" type="text" /><br />
<input id="Text2" class="amt" type="text" /><br />
<input id="Text3" class="amt" type="text" /><br />
<input id="addAll" type="button" value="Sum all Textboxes" /><br />
<p id="para" />
</body>
</html>
但我无法得到实际结果。请帮帮我
答案 0 :(得分:1)
尝试:
$(function() {
$("#addAll").click(function() {
var add = 0;
$(".amt").each(function() {
add += parseInt($(this).val() || 0, 10);
});
$("#para").text("Sum of all textboxes is : " + add);
});
});
使用parseInt
。此外,如果您要对值进行求和,则应使用+=
。
这里有效:http://jsfiddle.net/S9H6A/
更新:如果您尝试减去文本框中的所有值,那么您的问题是您要将总数初始化为0.请尝试这样的事情(同时添加来自@ Praveen的回答使用|| 0
将空input
s默认为0):
$(function() {
$("#addAll").click(function() {
var total;
$(".amt").each(function() {
if (typeof total === 'undefined') {
total = parseInt($(this).val() || 0, 10);
}
else {
total -= parseInt($(this).val() || 0, 10);
}
});
$("#para").text("Sum of all textboxes is : " + total);
});
});
答案 1 :(得分:0)
将此add -= Number($(this).val());
替换为add -= parseInt($(this).val()|| 0,10);