如何在jquery中添加千位分隔符的数字数组?

时间:2011-10-16 23:09:11

标签: jquery

好的,我有这个表,其中最后一列是一个仅数字列,格式为千位分隔符和十进制。 这是一个示例代码:

<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对该特定行不起作用。请帮助我,我只是一个新手。

1 个答案:

答案 0 :(得分:1)

要转换为实际数字(而不是字符串),您必须删除逗号。

改变这个:

sal_total += Number($(this).val());

到此:

sal_total += Number($(this).val().replace(/\$|,/g, ""));

这会在尝试将逗号和美元符号转换为数字之前删除它们。

如果您希望在将总数放回页面时重新输入逗号,则必须在获得总数后重新插入逗号。