如果我使提交按钮处于活动状态(使用 Tab 按钮),然后按 Enter ,将触发按键处理程序,并在按钮上生成单击事件。但OnClick
和提交处理程序不会触发。它只是默默地发布表格。为什么呢?
<script src="../js/jquery.js" type="text/javascript"></script>
<script type="application/javascript">
$().ready(function(){
$("#f1").keypress(function(event) {
if (event.keyCode==13){
var currentInputId = $(event)[0].target.id;
var currentInput = $('#'+currentInputId);
currentInput.click();
return false;
}
});
$("#f1").submit(function(){
alert ("huy")
})
})
</script>
<form name="f1" id="f1" method="POST">
<input type="text">
<input type="submit" onclick="return false;" id="submit">
</form>
答案 0 :(得分:3)
在我的机器上你的场景中发生的事情(在提交按钮上移动输入,然后按ENTER键)是:
keypress
处理程序在按钮上运行并调用click
onclick
返回false
如果我删除了onclick="return false;"
,那么:
keypress
处理程序在按钮上运行并调用click
submit
处理程序被称为更多测试表明submit
处理程序未被调用*,因为您从false
处理程序返回keypress
。
所以,要解决这个问题:
onclick="return false;"
return false
处理程序keypress
醇>
这将显示警告,然后按预期提交表单。