Java-скрипт onkeyDown отменяет символьную функцию в Internet Explorer 9 - PullRequest
0 голосов
/ 14 июля 2011

У меня есть текстовое поле 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», просто ужасно

есть какие-нибудь советы по этому поводу?

Спасибо

1 Ответ

0 голосов
/ 14 июля 2011

вместо

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

Попробуйте

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