Javascript keyDown替换在Internet Explorer 9上运行不正常的字符函数

时间:2011-07-14 10:02:05

标签: javascript replace onkeydown

我有一个十进制数字的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”时,那个中间步骤它只是很糟糕

有关于此的任何提示吗?

由于

1 个答案:

答案 0 :(得分:0)

而不是

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

尝试

textBox.value = textBox.value.replace('.', decimalSeparator);