我有一个数字总和的形式,但我希望jQuery跳过中间输入以进行求和。请帮忙我在这里发布代码。它肯定必须是输入标记,因为它将数据发送到PHP。我花了很多时间来解决这个问题,但我看不出问题。
的jQuery
var total;
$("input.amount").keyup(function() {
total = 0;
$(this).parents("table").find("input.amount").each(function() {
total += parseInt($(this).val());
}).end().find("span.total").html(total);
});
HTML
<form class="calc">
Form 1
<br />
<table border="0">
<tr>
<td>
Amount 1
</td>
<td>
<input class="amount" type="text" />
</td>
</tr>
<tr>
<td>
Amount 2
</td>
<td>
<input class="amount" type="text" />
</td>
</tr>
<tr>
<td>
Amount 3
</td>
<td>
<input class="amount" type="text" />
</td>
</tr>
<tr>
<td>
Total Amount
</td>
<td>
<span class="total">0</span>
</td>
</tr>
</table>
</form>
答案 0 :(得分:2)
只需更改HTML标记即可提供您希望忽略新类或data-*属性的输入。
<input class="amount ignored" type="text" />
然后检查.each()
循环中的课程:
if(!$(this).hasClass('ignored'))
total += parseInt($(this).val());
如果您沿着data- *路线走下去,可以使用:
<input class="amount" type="text" data-ignored="true" />
并检查确保数据属性已设置:
if(!$(this).data('ignored'))
total += parseInt($(this).val());