gpt4 book ai didi

javascript - 删除jquery中 'live'输入字段中的逗号

转载 作者:行者123 更新时间:2023-11-28 20:27:29 25 4
gpt4 key购买 nike

我在表格中有一系列输入框,其中包含一些动态生成的行,如下所示:

<table id="someDataTable">
<tbody>
<tr>
<td >Some Title</td>
<td >Units</td>
<td >Val/Unit</td>
<td >Value</td>
</tr>
<tr>
<td><input type="text" size="30" /></td>
<td><input type="text" size="14" class="units commas"/></td>
<td><input type="text" size="14" class="value commas"/></td>
<td><input type="text" size="14" readonly="readonly" class="autoTotal"/></td>
</tr>
...
</tbody>
</table>

现在,我有一个blur()调用来在每次退出输入框时添加逗号,以漂亮的Number Formatter添加逗号。插件,它的作用很简单:

<script>
$(".commas").blur(function () {
$(this).parseNumber({ format: "#,###", locale: "us" });
$(this).formatNumber({ format: "#,###", locale: "us" });
});
</script>

而且效果非常好。现在,另一方面,我还有一段代码,可以在每次击键时自动执行表单数学运算。它在initialize() 中有一个调用,如下所示:

 $(document).on('keyup', '#someDataTable', DoCalculations);

它调用的函数如下所示:

function DoCalculations() {
$(this).find('tr').each(function () {
var tUnits = $(this).find('.units').val();
var tValue = $(this).find('.value').val();
$(this).find('.autoTotal').val(Math.round(tUnits * tValue));
});
}

--

现在,我的问题是:我需要能够撕掉逗号来进行计算。我希望能够使用 NumberFormatter 的 parseNumber() 函数来执行此操作,但它不太适合。这是 DoCalculations 中尝试实现此目的的替代代码:

function DoCalculations() {

$(this).find('tr').each(function () {

var tTotal;
var tUnits = $(this).find('.units').val();
var tValue = $(this).find('.value').val();

tUnits = $.parseNumber(tUnits, { format: "#,###", locale: "us" });
tValue = $.parseNumber(tValue, { format: "#,###", locale: "us" });

tTotal = tUnits * tValue;
tTotal = $.formatNumber(tTotal, { format: "#,###", locale: "us" });

$(this).find('.autoTotal').val(tTotal);
});
}

但它在 NumberFormatter.js 中返回运行时错误,无法获取未定义或 null 引用的 numberString.indexOf 属性。准确地说是第 442 行。我不知道为什么。我本来以为是因为输入框是空的,结果没有关系。

在一天结束时,我需要去掉逗号。

最佳答案

正则表达式擅长删除字符:

var tValue = parseFloat($(this).find('.value').val().replace(/,/g, ''));

更新

如果val()可以为空/未定义,您可以添加如下检查:

var tValue = $(this).find('.value').val();
tValue = tValue ? parseFloat(tValue.replace(/,/g, '')) : 0;

关于javascript - 删除jquery中 'live'输入字段中的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17112426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com