rails提交表格没有刷新,:remote =>真正

时间:2013-04-26 17:33:30

标签: javascript ruby-on-rails forms submit

我正在尝试在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>

2 个答案:

答案 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”表示我的表单字段。