好的,我有这个表,其中最后一列是一个仅数字列,格式为千位分隔符和十进制。 这是一个示例代码:
<html>
<head>
<script src="jquery.js"></script>
<script src="includes/autoNumeric.js"></script>
<script type="text/javascript">
$(document).ready(function() {
jQuery(function($) {
$('input.auto').autoNumeric();
});
$("#table").keyup(function(){
var sal_total = 0;
$(".salary[value!='']").each(function() {
sal_total += Number($(this).val());
});
$('#total').val(sal_total);
});
$("#addRow").click(function() {
var newRow = "<tr><td><input type=\"text\"></td><td><input type=\"text\"></td><td><input type=\"text\" class=\"auto salary\"></td></tr>";
$("#table tr.totalRow:last").before(newRow);
});
});
</script>
</head>
<body>
<table id="table" border="1">
<tr>
<td>ID</td>
<td>Name</td>
<td>Salary</td>
</tr>
<tr>
<td><input type="text" ></td>
<td><input type="text" ></td>
<td><input type="text" class="auto salary"></td>
</tr>
<tr>
<td><input type="text" ></td>
<td><input type="text" ></td>
<td><input type="text" class="auto salary"></td>
</tr>
<tr>
<td><input type="text" ></td>
<td><input type="text" ></td>
<td><input type="text" class="auto salary"></td>
</tr>
<tr>
<td colspan="2">Total</td>
<td><input type="text" id="total" readonly="readonly" /></td>
</tr>
</table>
<div align="center">
<input type="button" id="addRow" value="Add Row" />
<input type="submit" name="save" value="Save" />
</div>
</body>
</html>
工资栏自动格式化为autoNumeric插件,每千个插入逗号并输入小数点,我想在每个按键时添加这些工资值,并将总和放在输入#total中。当我删除逗号但生成NaN时,它有效,加上每当我添加一行时,autoNumeric对该特定行不起作用。请帮助我,我只是一个新手。
答案 0 :(得分:1)
要转换为实际数字(而不是字符串),您必须删除逗号。
改变这个:
sal_total += Number($(this).val());
到此:
sal_total += Number($(this).val().replace(/\$|,/g, ""));
这会在尝试将逗号和美元符号转换为数字之前删除它们。
如果您希望在将总数放回页面时重新输入逗号,则必须在获得总数后重新插入逗号。