2009-06-15 7 views
1

(特定の文字を挿入するからユーザーを防止する)、これは私がこれまで持っているコードです:それは入っているjQueryのフィルタのテキストボックスには、私はテキストボックスに特定の文字を入力してからユーザーを防ぐためにしようとしています

$().ready(function() { 
    $(".textbox").keypress(function(event) { 
    var keyVal = event.keyCode; 

    if ((keyVal > 48 && keyVal < 57)) { // Numbers 
     return false; 
    } 
    }); 
}); 

イベントと条件が引き続き挿入されます。どのように私はこれについて行くすべてのアイデアですか?

答えて

0

私がこのようなことをしなければならなかったとき、私はイベントonkeyupを使用しました。

文字を自動的に取り除く代わりに(になります)、キー入力時に有効な文字をチェックする正規表現を使用しないでください。このフィールドに数字を入力することはできません」、または実際の入力フィールドに固有の「あなたの都市名には数字が含まれていない可能性があります。

+0

まだ同じ問題がありますが、ボタンを押したままにすると文字がテキストボックスで繰り返されるので、文字がキーダウンに挿入されていることを思い出してください。 – Drahcir

2

あなたのkeyValの割り当てですべてのブラウザが考慮されていませんでした。コードのこの作品は、Firefox、IE7、Safariの、Chromeで動作し、あなたが通常のテキスト入力要素でテスト、フィールドに数値を入力させません:

あなたは含める必要はあり
$().ready(function(){ 
    $(".textbox").keypress(function(event){ 
    var keyVal = (event.charCode ? event.charCode : ((event.keyCode) ? event.keyCode : event.which)); 
     if((keyVal > 48 && keyVal < 57))// Numbers 
     { 
     return false; 
     } 
    }); 
}); 
+0

OR演算子を使用して、ここで少し読みやすくすることもできます: 'var keyVal =(event.charCode || event.keyCode || event.which);' –

0

KEYVAL = 48とKEYVAL =あなたが0と9をそれぞれ許可します。最終的なコードは次のようになります:

$().ready(function(){ 
    $(".textbox").keypress(function(event){ 
     var keyVal = (event.charCode || event.keyCode || event.which); 
     if((keyVal >= 48 && keyVal <= 57))// Numbers 
     { 
      return false; 
     } 
    }); 
}); 

また、||デボンが提案したようにオペレータ。

関連する問題