2014-04-27 2 views
0

SPACE 키를 누른 경우에만 작동하지만, 특히 입력 텍스트에서 작동하는 명령으로 양식을 만들려고합니다.
사용자가 입력 내에서 SPACE 버튼을 누르면 특정 입력이 비활성화되기를 원합니다. 예를 들어 사용자가 First Name 입력에서 SPACE를 누르면 입력이 비활성화됩니다.공백을 입력하면 입력이 비활성화됩니다.

이것은 내가 지금까지 시도한 것입니다 :

window.addEventListener("keypress", checkKeyPressed, false); 

function checkKeyPressed(e) { 
    if (e.charCode == "32") { 
     $("input#fn").prop('disabled', true); 
    } 
} 

그러나 사용자가 페이지 어디서나 SPACE 누르는 경우가 작동합니다. 필자가 입력 영역에 있지 않고 SPACE를 누르면 FN 입력이 비활성화됩니다.

input#fn 변수를 만들려고했지만 함수의 인수로 사용하는 방법을 모르겠습니다.
미리 감사드립니다.

document.getElementById('fn').addEventListener("keypress", checkKeyPressed, false); 

또는 jQuery를 :

답변

2

입력 만이 아닌 창을 이벤트 핸들러를 할당

$('#fn').keypress(checkKeyPressed); 

당신은 대신을 다시 선택의 함수에 this의 사용을 선호 할 수 입력 :

function checkKeyPressed(e) { 
    if (e.charCode == "32") { 
     $(this).prop('disabled', true); 
     // or plain JS: this.disabled = true; 
    } 
} 
1

다음과 같이 시도해 볼 수 있습니다 (jQuery를 사용하는 경우) :

$('#user_login, #user_pass').on('keydown', function(e) { 
    if (String.fromCharCode(e.keyCode) == ' ') { 
     $(this).attr('disabled', 'disabled'); 
    } 
}); 
관련 문제