我需要使用回车键提交表单,但是,我必须使用BUTTON而不是SUBMIT作为类型,以便页面不刷新。如何让我的BUTTON充当SUBMIT并在有人按下回车键时执行?
<form>
<input type=text ...>
<input type=button ...>
</form>
我发现的很多关于此的信息都提到Netscape / IE /许多过时的材料。
这是我的HTML输出,我想隐藏提交按钮并使用ENTER:
答案 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框架。
希望有所帮助