我需要在点击“ESC”键时提交表格。我有以下代码:
<form id="testForm" name="testForm" method="post" action="" >
<input name="givenAnswer" id="realInput" value="" type="text" onclick="doSubmit()" autofocus>
</form>
<script>
document.getElementById('realInput').onkeydown = function(e){
if(e.keyCode == 27){
event.preventDefault();
document.testForm.submit();
}
};
</script>
但是这不能正常工作(我用FF 47.0.1尝试): 如果我输入一个文本输入字段,然后按ESC键,表单不会被提交。只有在我按下ESC键之前单击鼠标右键输入的情况下,才会在ESC键上提交表单(只有在脚本'event.preventDefault();'从脚本中排除时才有效)。但这不是预期的行为。
这个脚本也一样:
<script>
var el = document.getElementById("realInput");
el.onkeydown = function(event) {
if (event.keyCode == 27) {
document.testForm.submit();
}
};
</script>
有人知道告诉我是什么问题并建议解决方案吗?
我也认为这些链接存在类似的问题,但是那里提出的解决方案并不适用于我:
https://bugs.jqueryui.com/ticket/4922
由于
答案 0 :(得分:0)
在您的第一个代码段中,只需将event
更改为e
中的event.preventDefault()