我试图创建一个表单,其命令只有在按下SPACE键时才有效,特别是输入文本。
我希望如果用户按下输入内的SPACE按钮,将禁用特定输入。例如,如果用户在First Name
输入中按下SPACE,则输入将被禁用。
这是我迄今为止所尝试过的:
window.addEventListener("keypress", checkKeyPressed, false);
function checkKeyPressed(e) {
if (e.charCode == "32") {
$("input#fn").prop('disabled', true);
}
}
但是如果用户在页面中按任何空格,它就会起作用。我的意思是,如果他不在输入区域并按下SPACE,则禁用FN输入。
我尝试创建input#fn
变量,但我不知道如何将其用作函数中的参数。
提前谢谢。
答案 0 :(得分: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 :(得分:1)
你可以试试这样的东西(如果你使用jQuery):
$('#user_login, #user_pass').on('keydown', function(e) {
if (String.fromCharCode(e.keyCode) == ' ') {
$(this).attr('disabled', 'disabled');
}
});