当按下回车键时提交表单,请创建一个类似这样的JavaScript函数。
function checkSubmit(e) {
if(e && e.keyCode == 13) {
document.forms[0].submit();
}
}
然后将事件添加到您需要的任何范围中,例如在 div 标签上:
<div onKeyPress="return checkSubmit(event)"/>
这也是 Internet Explorer 7 的默认行为(可能也适用于早期版本)。
<form action="" method="get">
Name: <input type="text" name="name"/><br/>
Pwd: <input type="password" name="password"/><br/>
<div class="yourCustomDiv"/>
<input type="submit" style="display:none"/>
</form>
我尝试了各种基于JavaScript/jQuery的策略,但是一直存在问题。最新出现的问题涉及用户使用回车键从浏览器内置的自动完成列表中进行选择时意外提交表单。最终,我转而采用这种策略,它似乎在我们公司支持的所有浏览器上都可以工作:
<div class="hidden-submit"><input type="submit" tabindex="-1"/></div>
.hidden-submit {
border: 0 none;
height: 0;
width: 0;
padding: 0;
margin: 0;
overflow: hidden;
}
这与Chris Marasti-Georg目前被接受的答案类似,但通过避免使用display: none
,似乎可以在所有浏览器上正常工作。
我编辑了上面的代码,包括一个负tabindex
,以便它不会捕获Tab键。虽然在HTML 4中技术上无法验证,但HTML5规范包含使其按照大多数浏览器已经实现的方式工作的语言。
<button>
标签。根据W3C标准:
使用BUTTON元素创建的按钮与使用INPUT元素创建的按钮具有相同的功能,但BUTTON元素提供了更丰富的渲染可能性:BUTTON元素可以包含内容。例如,包含图像的BUTTON元素的功能类似于并且可能类似于将类型设置为“image”的INPUT元素,但BUTTON元素类型允许包含内容。
基本上还有另一个标签<button>
,它不需要JavaScript,也可以提交表单。它可以像<div>
标签一样进行样式设置(包括在按钮标签内部使用<img />
)。与<input />
标签创建的按钮相比,<button>
标签的灵活性更高。
<button type="submit">
<img src="my-icon.png" />
Clicking will submit the form
</button>
//<![CDATA[
//Send form if they hit enter.
document.onkeypress = enter;
function enter(e) {
if (e.which == 13) { sendform(); }
}
//Form to send
function sendform() {
document.forms[0].submit();
}
//]]>
j(".textBoxClass").keypress(function(e)
{
// if the key pressed is the enter key
if (e.which == 13)
{
// do work
}
});
其他JavaScript并不会有太大的区别。关键是检查keypress参数是否为“13”,这是回车键。
<SCRIPT TYPE="text/javascript">
<!--
function submitenter(myfield,e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;
if (keycode == 13)
{
myfield.form.submit();
return false;
}
else
return true;
}
//-->
</SCRIPT>
对于每个应在用户按回车键时提交表单的字段,请按以下方式调用submitenter函数。
<FORM ACTION="../cgi-bin/formaction.pl">
name: <INPUT NAME=realname SIZE=15><BR>
password: <INPUT NAME=password TYPE=PASSWORD SIZE=10
onKeyPress="return submitenter(this,event)"><BR>
<INPUT TYPE=SUBMIT VALUE="Submit">
</FORM>
<form name='test' method=post action='sendme.php'>
<input type=text name='test1'>
<input type=button value='send' onClick='document.test.submit()'>
<input type=image src='spacer.gif'> <!-- <<<< this is the secret! -->
</form>
<form method="post" action="/url" id="editMeta">
<textarea class="form-control" onkeypress="submitOnEnter(event)"></textarea>
</form>
Js
function submitOnEnter(e) {
if (e.which == 13) {
document.getElementById("editMeta").submit()
}
}
event.which
而不是 e.keyCode。这是我用过的方法:var charCode = (typeof event.which == "number") ? event.which : event.keyCode; if(charCode == 13){ this.handleSubmit(event); }
- CoronelV