2014-04-27 32 views
0

我試圖創建一個窗體,命令只有在按下SPACE鍵時才起作用,但是特別是輸入文本。
我想要一個特定的輸入將被禁用,如果用戶按下輸入內的SPACE按鈕。例如,如果用戶按下空格鍵First Name輸入,輸入將被禁用。如果按下空格,則輸入被禁用

這是我到目前爲止已經試過:

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

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

但是,如果用戶按下頁面空間任何地方它的工作原理。我的意思是,如果他不在輸入區並按下SPACE,則FN輸入被禁用。

我試着創建一個input#fn變量,但我不知道如何將它用作函數中的參數。
在此先感謝。

回答

2

事件處理函數分配到輸入而已,不是窗口:

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

或者jQuery的:

$('#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'); 
    } 
}); 
相關問題