2009-05-17 11 views
11

文字または数字ではないHTMLテキスト入力フィールドに文字を入力できないようにします。jQueryのイベントオブジェクトからkeypress値を取得する方法

この正確な機能は、Twitter登録ページ(ユーザー名フィールド)https://twitter.com/signupで見ることができます。

私はこれをjQueryで記述しようとしています。しかし、私は、どのキーが押されたか、その値が受け入れ可能かどうかをテストするために、キー入力イベントの値を取得する必要があります。

<input type="text" id="username" name="username" /> 

<script type="text/javascript"> 
$("#username").keypress(function(event){ 

// Get the keypress value 
// ...? 

// If the keypress value is illegal then disable it 
if (...){ 
    event.preventDefault(); 
} 

}); 
</script> 

答えて

32

あなたがキーコードをキャプチャするイベントオブジェクトの「」プロパティを使用することができます。

は、ここでは、コードです。

 
var c = String.fromCharCode(e.which); 

は、詳細な説明のためのリンク http://api.jquery.com/keypress/を参照してください - あなたは、対応する文字を取得するには、次のコードのようなものを使用することができます。

+0

修正したリンクTRY:http://api.jquery.com/keypress/を もhttp://api.jquery.com/eventを見ます.which/event.whichの詳細については –

+0

ほんとにいい男:) – Nav

2

ユーザーがキーを押すと、対応するASCIIコードがイベントで送信されます。

if (e.which > 47 && e.which < 58) 
{ 
    // it is a number 
} 

はあなたが条件を書くことができ、多くの異なる方法があります。

だからあなたの条件このような何かを見ることができるe.whichフィールドを使用します。おそらく、配列に許可された文字をマッピングすることによって可能です。参考のため

、 大文字:65から90 小文字:97から122

あなたは、このアプリは、標準のASCIIセットを使用して、英語で入力して人々のために働くようになりますことを認識すべきです。これらのキーコードは標準ASCII範囲外にあり、異なるエンコードを使用するため、国際ユーザーはフォームフィールドに書き込むことができません。ちょうど考慮すべき何か。

ASCIIコード:http://www.petefreitag.com/cheatsheets/ascii-codes/

0
var ako =''; 
    var novalue = ''; 
    jQuery('html').keypress(function(event){ 
     var valuekey = event.charCode; 
     ako = String.fromCharCode(event.which); 
     jQuery('.a').each(function(){ 
      var cn = jQuery(this).html(); 
      if(ako == cn){ 
       jQuery(this).hide('explode',{},'10000').remove(); 
      } 
      novalue +=cn; 
     }); 
     //alert(novalue); 
     jQuery("#cn").animate({width:'400px',border:'1px solid pink'},'slow'); 
    }); 

がTHIS ONE