输入按钮作为SUBMIT

时间:2011-08-04 19:30:37

标签: forms button input submit enter

我需要使用回车键提交表单,但是,我必须使用BUTTON而不是SUBMIT作为类型,以便页面不刷新。如何让我的BUTTON充当SUBMIT并在有人按下回车键时执行?

<form>
<input type=text ...>
<input type=button ...>
</form>

我发现的很多关于此的信息都提到Netscape / IE /许多过时的材料。

这是我的HTML输出,我想隐藏提交按钮并使用ENTER:

http://i.stack.imgur.com/Ohepe.png

3 个答案:

答案 0 :(得分:3)

启用Javascript

<input type="button" onclick="this.form.submit()" ... /> 

应该有效

答案 1 :(得分:2)

  

我必须使用BUTTON而不是SUBMIT作为类型才能使页面不刷新

罗。使用刷新页面的普通submit按钮。 (理想情况下,对于可访问性,使其工作!)然后添加渐进增强,以便在JS可用时用更平滑的东西替换表单的提交操作。在这种情况下,使用return false(或DOM 2事件模型中的event.preventDefault())停止表单提交。

<form id="foo" method="POST" action="dosomething.script">
    ...
    <input type="submit" value="Do something"/>
</form>

document.getElement('foo').onsubmit= function() {
    beginAJAXSubmission();
    return false;
};

抓取表单的submit事件通常比尝试在按钮上选择click更好,因为它通常会在表单正常提交时触发,包括在Enter按键上。表单中第一个提交按钮的click 通常会在Enter按键上被触发,但有些情况(取决于表单中的控件数量和它是什么浏览器)在哪里没有发生,所以你最终可能会真正提交表格。

答案 2 :(得分:1)

正如其他人所说,你必须使用Javascript。我推荐JQuery框架。

但我不理解刷新的事情?

正常方式是您点击提交,您的表单将通过请求发送到服务器。 服务器处理数据并返回响应(HTML / JSon..etc)这个响应通常会重定向到结果页面(以避免关于刷新时重新发布的着名警告)。

现在,如果您的表单只是较大页面的一小部分,您可能希望使用ajax发布小表单,然后获取结果并更新您的DOM。

所有这些都说,没有什么可以阻止你使用提交类型的按钮,它实际上是让你的输入键defaut到这个动作的最好方法。您所要做的就是使用Jquery并拦截表单的提交并进行ajax调用而不是正常的方式。

你会发现很多使用JQuery的例子,因为它可能是最常用的javascript框架。

希望有所帮助