![](/img/trans.png)
[英]How do I use JavaScript or jQuery to submit a form by using the Enter key, when not the default form action
[英]When editing a text input, how do I do a specific JavaScript action on hitting “Enter” key without the form's onSubmit handler?
我有一个HTML input
文本字段。
在编辑该字段时点击“ Enter”按钮,如何执行特定的JavaScript调用? 当前,单击“ Enter”将重新加载整个页面,大概是由于提交了整个表单。
注意:此HTML / JS代码仅作为Portlet包含在门户网站的大型HTML页面中,该门户网站具有一个大的主窗体,始终围绕着我的代码。 因此, 我无法控制表单-无法更改onSubmit事件或操作,也无法将我的INPUT
字段包装为较小的表单 -否则解决方案将很明显:)
此外,不涉及添加一个可见的按钮形式的解决方案是最好强 (我不介意加入一个按钮display:hidden
,如果这是什么需要,但我试图这样做似乎没有工作) 。
这需要直接使用JS-没有查询/原型/ YUI。
PS:这是一个搜索字段,如果有人好奇的话,该操作将是对现有页内JavaScript搜索方法的调用。
谢谢!
包括以下javascript
<script type="text/javascript">
function noenter() {
return !(window.event && window.event.keyCode == 13);
}
</script>
将以下属性添加到您希望阻止提交的输入元素中
onkeypress="return noenter()"
当然,如果您愿意,您还可以执行其他一些活动...
假设您有一个文本输入类似
<input id="myTextBox" name="foo" value="bar">
...您可以在文档加载后执行类似的操作,它可以在所有主流浏览器中使用:
document.getElementById("myTextBox").onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.keyCode || evt.which;
if (charCode == 13) {
// Suppress default action of the keypress
if (evt.preventDefault) {
evt.preventDefault();
}
evt.returnValue = false;
// Do stuff here
}
};
使用文档对象检测Enter操作会更好吗? 这样,您无需更改HTML表单标签。 您可以将搜索功能分配给按钮,尽管如果隐藏了该按钮,我不确定用户如何单击它,或者可以使用onblur之类的方法来捕获用户在输入控件中的切换。
尝试添加属性“ action = javascript:void(0)”,如下例所示。
Enter将触发与单击“提交”按钮相同的操作,但不会自动重新加载页面。
<html>
<head></head>
<body>
<div id="status"></div>
<form action="javascript:void(0)">
<input type="text" />
<input type="submit" value="submit" onclick="document.getElementById('status').innerHTML = 'submitted';"/>
</form>
<script>document.getElementById('status').innerHTML = 'page loaded';</script>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.