我正在尝试在rails中提交表单,而不会在之后刷新页面。我一直在网上寻找,但似乎添加:remote =>真的似乎没有像我想象的那样改变我的形式。现在我的每个问题都有很多答案,每个问题都连接到一个单选按钮,但我隐藏了单选按钮,所以单击标签本身会提交表单。页面是否因单选按钮表单提交而刷新?我真的不确定,并且在这一点上会感激任何帮助...
<%= form_for(uanswer, :remote => true) do |f| %>
<% answers.each_with_index do |answer, i| %>
<% unless answered_flag %>
<%= f.radio_button :answer_id, answer.id, :class => "radio hide",
:onclick => "this.form.submit();" %>
<% end %>
<%= f.label :answer_id, answer.answer, :class => "answer",
:value => answer.id %>
<% end %>
生成的HTML表单看起来或多或少如下:
<form accept-charset="UTF-8" action="/uanswers" class="new_uanswer"
data-remote="true" id="new_uanswer" method="post"><div
style="margin:0;padding:0;display:inline"><input
name="utf8" type="hidden" value="✓"><input name="authenticity_token"
type="hidden" value="PY5ACVmrvDnt/iYF8RK6O7tDKAn2G2dFdLeBNZw5MJ4="></div>
</form>
答案 0 :(得分:7)
remote =&gt; true现在没有为你做任何事情,因为你绕过使用this.form.submit()的rails。您需要异步提交表单。有关类似问题的解决方案,请参阅Submit form in rails 3 in an ajax way (with jQuery)。
答案 1 :(得分:0)
将this.form.submit()
更改为$(this).closest('form').submit()
对我有用。我使用“onchange”方法代替“onclick”表示我的表单字段。