0

ユーザーが 0 または 1 を入力したことを確認するこの小さなスクリプトを作成しました。それ以外の場合は、0 に変更します。

$('.lcdnum1').keyup(function(){
    if (!($(this).val()==='0' || $(this).val()==='1')){
        $(this).val('0');
    }
});

私が気に入らない唯一のことは、最初に「悪い」キャラクターが表示されることです。「x」を入力すると、「x」が一瞬表示された後、消えて 0 に置き換えられます。

何が起こっているかを示す私のテスト URL は次のとおりです

ユーザーにとって少しスムーズになるようにこれを変更するにはどうすればよいですか? つまり、「悪い」文字は最初から表示されるべきではありません。ありがとうございました!

4

3 に答える 3

2

使用しているイベントを少し調整するだけです。キーアップを使用しています。つまり、キーが離された後にチェックが実行されます。ただし、キーを離す前にチェックを実行すると、目的の結果が得られます。

$('.lcdnum1').keydown(function(){
    if (!($(this).val()==='0' || $(this).val()==='1')){
        $(this).val('0');
    }
});
于 2013-08-06T18:31:49.580 に答える
1
$('.lcdnum1').keyup(function(){
    var value = $.trim(this.value);
    if (value != '1' ){
        $(this).val('0');
    }
});

デモ

于 2013-08-06T18:30:23.223 に答える