0
我已经创建了一个用户可以添加行的表格。而就具体列,有一个输入,其中用户可以插入值和jQuery将总结所有的值,并将其插入到另一个输入使用JQuery计算动态表中的每个输入值
所以,要清楚,这里有一个例子:
问题是,我添加更多的行后,它不会将所有输入相加。它只会求和第一行的第一个输入,但当我在第二,第三,第四和...输入中插入一个值时,它不会求和。
这里的表:
<table id="twe">
<thead>
<tr>
<th valign="middle"><center>Amaun</center></th>
</tr>
</thead>
<tbody>
<tr>
<td><input name="amount[]" type="text" class="amount" id="amount[]" value="" /></td>
</tr>
</tbody>
</table>
<button type="button" onclick="addrow('twe')" title="Add">Add</button>
<br/>
<br/>
Sum: <input type="text" id="sum" />
而这里的脚本
(function($) {
$.fn.currencyFormat = function() {
this.each(function(i) {
$(this).change(function(e){
if(isNaN(parseFloat(this.value))) return;
this.value = parseFloat(this.value).toFixed(2);
});
});
return this; //for chaining
}
})(jQuery);
$(document).ready(function() {
$('.amount').currencyFormat();
});
$(document).ready(function() {
$(".amount").each(function() {
$(this).keyup(function() {
calculateSum();
});
});
});
function calculateSum() {
var sum = 0;
$(".amount").each(function() {
if (!isNaN(this.value) && this.value.length != 0) {
sum += parseFloat(this.value);
}
});
$("#sum").val(sum.toFixed(2));
}
function addrow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var colCount = table.rows[1].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[1].cells[i].innerHTML;
switch(newcell.childNodes[0].type) {
case "text":
newcell.childNodes[0].value = "";
break;
}
}
}
同去与输入货币。它只适用于第一行的第一个输入。
需要帮助
谢谢
谢谢! 现在接下来的问题是我使用jQuery .toFixed()将.amount输入转为十进制数,但是它仅适用于第一行 –
@SyafiqAZ我不确定你会得到什么...... – entropic
对不起,不足以解释清楚。我已更新了我的问题。希望是明确的 –