我有以下代码适用于 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链接。(正如我所说,如果我在 Firefox 或 Opera 中打开此链接,则 js 可以工作,但不能在 Chrome 或 IE 中工作)。控制台上也没有js错误。我需要为 Chrome 和 IE 做一些特定的事情吗?
编辑
澄清一下,在 Chrome 和 IE 中没有触发的是 onChange 事件。Firefox 和 Opera 也是如此。