如何防止刷新页面中的输入密钥?

时间:2014-04-05 19:23:53

标签: javascript jquery html

我正在进行文本冒险,目前底部有一个文本输入表单,它将接受玩家的命令,例如“Go North”或“Get item”。以前,我必须在它旁边有一个按钮,它会激活一个函数来解析表单所持有的任何字符串值并解释它,但我真的很想能够点击“Enter”键来启动该功能。 / p>

问题是,无论何时我点击表单中的回车键,页面都会刷新并尝试提交表单,即使我只是想让它激活一个功能。

我尝试过像

这样的东西
$("userInput").keydown(function(event) {
        if (event.keyCode == 13) {
            inputHandler()
            event.preventDefault();
        }       
    });
});

其中“userInput”是播放器键入命令的窗体的ID,但似乎不起作用,当我按Enter键时页面会保持刷新。

我不太明白我做错了什么,请记住我是Javascript / jQuery的新手,所以可能只是缺乏经验。

2 个答案:

答案 0 :(得分:2)

您忘记加入#(应该是$('#userInput'))。我认为这就是你要找的东西

$('#userInput').keypress(function(event) {
  if (event.which == 13) {
    alert("run function here");
    event.preventDefault();
  }
});

JSFIDDLE

答案 1 :(得分:0)

简单地改变:

$("userInput").keydown(function(event) {
        if (event.keyCode == 13) {
            inputHandler();
            event.preventDefault();
        }       
    });
});

要:

$("userInput").keydown(function(event) {
        if (event.keyCode == 13) {
            event.preventDefault();
            inputHandler();
        }       
    });
});

首先运行event.preventDefault然后运行该函数。如果您按照ID或“。”选择元素,还要记得添加“#”。如果你选择一个元素是CLASS。