次のコードは、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 で発生しています。