【发布时间】:2013-04-09 12:11:34
【问题描述】:
我有以下代码在 Firefox-20 和 Opera 中有效,但在 Chrome-26 或 IE-10 中无效。 keyup 函数在金额中添加印度逗号。
$(document).ready(function() {
$("#readyArea").on('change', function() {
$("#underConstArea").val($(this).val()).trigger('change');
});
$('.comma').on('keyup', this, function commaFormatted(){
var delimiter = ","; // replace comma if desired
var amount = $(this).val().replace(/\,/g,'');
var a = amount.split('.',2);
var d = a[1];
var i = parseInt(a[0],10);
if(isNaN(i)) { return ''; }
var minus = '';
if(i < 0) { minus = '-'; }
i = Math.abs(i);
var n = new String(i);
var a = [];
var cnt=0;
while(n.length > 2)
{
if(cnt == 0)
{
var nn = n.substr(n.length-3);
n = n.substr(0,n.length-3);
cnt++;
}
else
{
var nn = n.substr(n.length-2);
n = n.substr(0,n.length-2);
}
a.unshift(nn);
}
if(n.length > 0)
{
a.unshift(n);
}
n = a.join(delimiter);
amount = n;
amount = minus + amount;
$(this).val(amount);
});
});
这里是 JSFiddle link。 (正如我所说,如果我在 Firefox 或 Opera 中打开此链接,则 js 可以工作,但不能在 Chrome 或 IE 中工作)。控制台上也没有js错误。我需要针对 Chrome 和 IE 做一些特定的事情吗?
编辑
澄清一下,在 Chrome 和 IE 中没有触发的是 onChange 事件。 Firefox 和 Opera 也是如此。
【问题讨论】:
-
我在 OS X 上使用 Chrome 26.0.1410.43,我看到逗号就像在 Firefox 中一样。他们应该看起来像这样:
12,34,56,789吗? (对不起,我不熟悉印度逗号) -
对不起,如果我不清楚。深夜让我有点迷茫。是的,逗号将出现在您的示例中。问题是 onChange 事件在 Chrome 和 IE 中没有触发。
标签: javascript jquery cross-browser