我有一个文本框
<input name="tx1" size="10" type="text" id="tx1" class="sample dynamic format" maxlength="10" />
文本框更改和 keyup 事件绑定到两个不同的函数。
$('.sample.dynamic').change(myJsFunction);
$('.format').keyup(function (e) {
formatfn(this, e);
});
这是我的格式:
function formatfn(sValue, e) {
//Do some formatting
$(sValue).val(newVal);
return newVal;
}
这两个事件在 IE 和 firefox 中工作正常,但在 chrome 中只有 keyup 功能正在工作,并且不会触发更改事件。
如果我在formatfn中评论以下行,那么更改事件也开始在 chrome 中触发。
//$(sValue).val(newVal);
但我不能评论这一行,因为我需要在每个按键上应用格式。
更新: 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');