![](/img/trans.png)
[英]jQuery .css() not working in IE 6,7,8 and Firefox, but works in Chrome, Safari, Opera
[英]JQuery Code works in Firefox, Opera but not working in Chrome and IE
我有以下代码可在Firefox-20和Opera中使用,但不能在Chrome-26或IE-10中使用。 键入功能将印度逗号添加到金额中。
$(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做一些特定的事情吗?
编辑
需要澄清的是,onChange事件并未在Chrome和IE中触发。 在Firefox和Opera中也是如此。
我在Chrome上进行了测试,但逗号效果很好,但是我从未看到underConstArea
更新,而在离开文本框后,我确实在Firefox上看到了更新。
我不确定那里发生了什么,但是我有几种解决方法。
首先,似乎$("#readyArea").on('change')
触发取决于浏览器。 我不知道为什么,但是当您更改代码时,Chrome似乎不会引发更改事件。 也许它正试图避免变化的无限循环。 我不太确定
如果您对underConstArea
仅在数字完成后更新感到满意(因为它在firefox中focusout
),则可以在focusout
而不是change
。 我将您的顶行更改为
$("#readyArea").on('focusout', function() {
$("#underConstArea").val($(this).val());
});
在Chrome和Firefox中对我来说效果很好。 这是更新的小提琴。
另外,如果你想它来更新每个用户的类型时,只需更新underConstArea
你的内commaFormatted
功能。 只需添加
$("#underConstArea").val(amount);
在功能的底部。 以及指向我提供的第二个选项的链接 。 请注意,我删除了#readyArea
上#readyArea
所有事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.