如果按下空格,则禁用输入

时间:2014-04-27 14:36:28

标签: javascript

我试图创建一个表单,其命令只有在按下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变量,但我不知道如何将其用作函数中的参数。
提前谢谢。

2 个答案:

答案 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');
    }
});