0

我有一个十进制数的 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”的中间步骤时,这真是太糟糕了

有什么建议吗?

谢谢

4

1 回答 1

0

代替

textBox.value = textBox.value.concat(decimalSeparator);

尝试

textBox.value = textBox.value.replace('.', decimalSeparator);
于 2011-07-14T10:17:27.473 回答