0

10 進数用の 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 では置き換えではなく、ex. 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 に答える