【发布时间】:2017-03-17 01:48:57
【问题描述】:
我需要在点击“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
谢谢
【问题讨论】:
-
试试
e.keyCode == 27,而不是e.which == 27。 -
不,不是这样的!命令'document.testForm.submit();'已达到,问题是它没有效果。
标签: javascript jquery html forms