2009-05-17 5 views
11

문자 나 숫자가 아닌 HTML 텍스트 입력 필드에 문자를 입력하지 못하게하고 싶습니다.jQuery의 이벤트 개체에서 키 누르기 값을 얻는 방법

이 정확한 기능은 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

수정 링크를 시도하십시오 http://api.jquery.com/keypress/를 또한 http://api.jquery.com/event 참조 .which/event.which에 관한 더 많은 정보를 위해 –

+0

whewww 멋진 남자 :) – Nav

2

사용자가 키를 누르면 해당 ascii 코드가 이벤트에서 전송 된 코드입니다.

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

당신이 조건을 쓸 수있는 여러 가지 방법이 있습니다 :

그래서 조건이 같은 것을 볼 수 e.which 필드를 사용합니다. 가능하게 배열에 허용 된 문자 매핑을 사용합니다.

참고로

, 대문자 : 65-90 소문자 : 97-122

당신은이 앱은 표준 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'); 
    }); 

가 본 ONE

관련 문제