我有一个十进制数字的asp文本框。 我有一个jscript函数来替换num pad“。”用户文化中使用的小数分隔符的字符(例如: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”时,那个中间步骤它只是很糟糕
有关于此的任何提示吗?
由于
答案 0 :(得分:0)
而不是
textBox.value = textBox.value.concat(decimalSeparator);
尝试
textBox.value = textBox.value.replace('.', decimalSeparator);