简单示例:
<%= form_for :post, url: posts_path do |f|%>
<p>
<%= f.label :title%><br/>
<%= f.text_field :title%>
</p>
<p>
<%= f.label :text%><br/>
<%= f.text_area :text%>
</p>
<p>
<%= f.submit%>
</p>
<%end%>
我认为这是一个Rails默认事件处理。在这里,如果用户按下回车键,则会提交params
。
但在我的情况下,我必须使用enter键进行另一个事件。
我必须按回车键搜索users
另一个输入字段。
但如果我使用form_for
,则提交表单。 :(
如何使用rails
中的回车键阻止提交?
我必须使用普通的html标签吗?与<form> tag
和<submit> button
一样?
有什么好的解决方案吗?
答案 0 :(得分:20)
输入密钥提交不是轨道问题,这是一个HTML / JS问题
Rails是后端(存在于服务器上); HTML / JS是客户端(在浏览器中) - 它们确定启用/禁用哪些功能
我会解决你的问题:
#app/assets/javascripts/application.js
$("form").on("keypress", function (e) {
if (e.keyCode == 13) {
return false;
}
});
答案 1 :(得分:1)
这不是Rails特定的问题,因为它是所有浏览器的本机行为。如果您在表单中提交了一个按钮(并且您应该:))那么每个浏览器都会在输入后提交表单。 *我还没有检查过,但即使没有明确的提交按钮,也应该这样做] 接受的答案是正确的,但由于有一个线程提供了一个更复杂的例子,我也会经历它: