【问题标题】:rails submit form w/o refresh, :remote => truerails 提交表单不刷新,:remote => true
【发布时间】:2013-04-20 23:07:20
【问题描述】:

我正在尝试在 Rails 中提交表单而不刷新页面。我一直在网上四处寻找,但似乎添加 :remote => true 似乎并没有像我想象的那样改变我的形式。现在我每个问题都有多个答案,每个问题都连接到一个单选按钮,但我隐藏了单选按钮,因此单击标签本身会提交表单。单选按钮表单提交是否会刷新页面?我真的不确定,如果在这一点上提供任何帮助,我将不胜感激......

<%= 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>

【问题讨论】:

  • 提交表单后渲染的内容取决于表单发布到的操作决定渲染的内容。由于您实际上并未在问题中发布该控制器操作,因此除了建议您尝试 render :nothing =&gt; true 之外,我无法提供正确的答案

标签: javascript ruby-on-rails forms submit


【解决方案1】:

remote=>true 现在没有为您做任何事情,因为您正在使用 this.form.submit() 绕过 Rails。您需要异步提交表单。有关类似问题的解决方案,请参阅 Submit form in rails 3 in an ajax way (with jQuery)

【讨论】:

    【解决方案2】:

    this.form.submit() 更改为$(this).closest('form').submit() 对我有用。不过,我在表单字段中使用“onchange”方法而不是“onclick”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 2012-08-08
      相关资源
      最近更新 更多