总和在所有浏览器中正确显示。现在当我删除行时,summation的值将减少但在firefox浏览器中没有正确显示它。假设10 + 10 + 10 = 30如果删除2行则sum表示20。但这将是10.出了什么问题。
<script>
$(document).ready(function () {
$("form").on('keyup', '.input_ttotal', function() {
calculateSum();
});
$('#btnDel').click(function () {
calculateSum();
});
});
function calculateSum() {
var sum = 0;
$(".input_ttotal").each(function () {
if (!isNaN(this.value) && this.value.length != 0) {
sum += parseFloat(this.value);
}
});
$("#sum").html(sum.toFixed(2));
}
</script>
Html
<form action="" method="POST">
<div class="yes">
<div id="cost1" class="clonedCost" style="display: inline;">
<table border="0">
<tr>
<td>
<label class="total" for="total">Total 1</label>
</td>
</tr>
<tr>
<input class="input_ttotal" id="ttotal" type="text" name="ttotal[]" />
</td>
</tr>
</table>
</div>
<div id="addDelButtons_cost">
<input type="button" id="btnAdd" value="+">
<input type="button" id="btnDel" value="-">
</div>
<p>Sum is:<span id="sum">0</span>
</p>
</div>
</form>
jsfiddle链接是http://jsfiddle.net/ByLrz/1/
答案 0 :(得分:0)
$('#btnDel').click(function () {
calculateSum();
});
所有这一切都调用calculateSum函数,该函数反过来计算".input_ttotal"
输入中所有值的总和。
输入中没有任何输入被删除,因此总和将始终相同。
答案 1 :(得分:0)
您的calculateSum();
很可能在删除元素之前被调用。请尝试在http://gestionale.odoyabooks.com/scripts/other_book_cost.js
$('#btnDel').click(function () {
if (confirm("Are you sure you wish to remove this section? This cannot be undone."))
{
var num = $('.clonedCost').length;
$('#cost' + num).slideUp('slow', function () {$(this).remove();
// after $(this).remove() recalculate
calculateSum();
if (num -1 === 1)
$('#btnDel').attr('disabled', true);
$('#btnAdd').attr('disabled', false).prop('value', "");});
}
return false;
$('#btnAdd').attr('disabled', false);
});