我想将以下代码转换为form_for
或form_tag
。
<form onsubmit="foo()">
我该怎么办?我不想连接另一个页面(action =“/ URL”)。
我希望在提交此表单时触发function foo()
。
答案 0 :(得分:14)
使用form_tag
或form_for
这应该很容易。例如:
<%= form_for @model, :html => { :onsubmit => "foo()" } %>
<% end %>
或
<%= form_tag '#', :html => { :onsubmit => "foo()" } %>
<% end %>
答案 1 :(得分:4)
form_tag
比form_for
更容易。试试这个:
<%= form_tag '#', onsubmit: "foo();" do %>
<% end %>
此外,请不要忘记在foo()
内,它应return false
,以便表单实际上不会提交!
答案 2 :(得分:3)
您最好将foo();
函数放入Rails中的unobtrusive资产管道中:
#app/assets/javascripts/application.js
var foo = function(e) {
e.preventDefault();
...
};
$(document).on("submit", "#form", foo(e));
你可以陪伴......
<%= form_tag "#", id: "form" do %>