我有一个十进制数的 asp 文本框。我有一个 jscript 函数来替换数字键盘“。” 用户文化中使用的小数分隔符字符(例如:en-US -> 小数分隔符:“。” pt-PT -> 小数分隔符:',')
这是我的功能:
//method that substitutes num pad '.' with the current user culture decimal separator when num pad '.' key is hit
function onKeyDownPutDecimalSeparator(e, textBox) {
var unicode = e.charCode ? e.charCode : e.keyCode;
if (unicode == 110) {
e.returnValue = false;
e.cancel = true;
textBox.value = textBox.value.concat(decimalSeparator);
}
}
这在大多数浏览器上都可以正常工作,包括 chrome 和 IE8,但在 IE9 中而不是替换,例如。1.2 -> 1,2,正在做类似的事情:
1.2 -> 1,.2 并且当文本框失去焦点时,1,2
最终值“1,2”是我想要的,但是当用户实际上可以看到“1,.2”的中间步骤时,这真是太糟糕了
有什么建议吗?
谢谢