私は数値データのみであることを検証する必要があるテキストボックス(価格)があります。また、私は先行する数字の零を許可することはできません(01など)。だから、replaceメソッドを正規表現で使用しました。置き換える文字の場合、これを使用した:jquery replace関数がIEで奇妙に動作する
$("#txtPrice").keyup(function(){
var text=$(this).val();
$(this).val(text.replace(/[^\d\s\.]/,""));
});
前のゼロを置き換えるために、私はそれは、Firefoxで正常に動作しますが、IEで、それは奇妙な振る舞い
$("#txtPrice").keyup(function(){
var text=$(this).val();
$(this).val(text.replace(/^0+/, ''));
});
を使用しました。
数字の前に新しい数字を追加すると、数値の末尾に新しい数字が追加されます。例えば、「56」を「156」に編集すると、「561」を形成する最後に数字1が追加されます。任意の数字が正面に配置されようとすると、それは実際にテキストフィールドの最後に追加されます。どのようにこの行動を解決することができますか?
これは、正規表現の置き換えではなく、他の行に問題がある可能性が高くなります。 「警告(テキスト);」を入力するとどうなりますか?それらの2行の間に? – pms1969
私は、特定のインスタンスにバインドされたkeyup関数を1つだけ持つのが理想的だと思います。あなたが探している行動を得るための解決策ではないかもしれないが、それは何が起こっているのかを簡単に把握するだろう。 – veeTrain
こんにちはiijb;私の答えがあなたのための実用的な解決策だったら、それを答えとして受け入れるか、それがあなたの状況に合わない理由を私たちに知らせてください。ありがとう – veeTrain