我的页面上有一个简单的文本框和按钮类型输入。
<input id="sText" type="text" />
<input id="sButton" type="button" value="button" />
我使用jQuery捕获按钮单击。
$("[id$=sButton]").click(function () {
...do Stuff
});
只要我手动点击按钮,上面的代码就可以正常工作。当我想使用“enter”键点击按钮时,我开始遇到问题。无论我做什么,我都无法阻止enter键执行它的默认提交功能。
我做的第一件事就是将输入类型从“提交”更改为“按钮”。
我尝试将表单的onsubmit设置为onsubmit="return false;"
我尝试使用jQuery来捕获回车键事件:
$("#sText").keyup(function (event) {
if (event.keyCode == 13) {
alert("Enter!");
// $("#sButton").click();
}
});
每次按下回车键,就像我提交表格一样,整个页面都会刷新。上面的jQuery代码确实捕获了“输入”击键,但表单仍然提交并刷新页面。
我不确定最新情况。
答案 0 :(得分:9)
您需要取消操作。
event.preventDefault();
但我相信你只能用keydown杀死表单提交,而不是keyup。
答案 1 :(得分:1)
Epascarello是对的,你需要用他给你的代码取消提交。但是您也应该将按钮更改回提交类型,以便ENTER键和单击按钮执行相同的操作。这样你只需在一个区域内处理取消提交。
<input id="sButton" type="submit" value="Submit" />
JQuery的:
$("#YourFormId").submit(function(event){
event.preventDefault();
...do Stuff
});
这样一个函数处理ENTER键和按钮单击。
编辑:将event.preventDefault()作为第一个语句。