テキストボックスがあります
<input name="tx1" size="10" type="text" id="tx1" class="sample dynamic format" maxlength="10" />
テキストボックスの変更イベントとキーアップイベントは、2つの異なる関数にバインドされます。
$('.sample.dynamic').change(myJsFunction);
$('.format').keyup(function (e) {
formatfn(this, e);
});
これは私のformatfnです:
function formatfn(sValue, e) {
//Do some formatting
$(sValue).val(newVal);
return newVal;
}
IEとFirefoxではどちらのイベントも正常に機能しますが、Chromeではキーアップ機能のみが機能し、変更イベントは発生しません。
以下の行をformatfnでコメントすると、イベントの開始をchromeでも変更します。
//$(sValue).val(newVal);
しかし、キーを押すたびにフォーマットを適用する必要があるため、この行にコメントすることはできません。
こことここで2つの似たような質問を調べましたが、答えが見つかりませんでした。
更新:Formatfnはさまざまなフォーマット処理を行っていますが、newval変数についてのアイデアを提供するために、ここに関連するコードを追加しています。
var newVal = $(sValue).val();
if (newVal != "")
newVal = parseInt(RemoveCommas(newVal), 10).toString();
var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');
while (sRegExp.test(newVal)) {
newVal = newVal.replace(sRegExp, '$1,$2');