javascript - 远程刷新页面=>真正的模式表单提交

标签 javascript jquery ruby-on-rails

我有一个带有表单的模态框,在提交后没有验证错误,我正在尝试关闭模态框并使用新结果刷新页面。但我无法让它发挥作用。我有这个代码(Rails 3):

我的 Controller :

    def create

    @stuff = Stuff.new(params[:stuff])

       respond_to do |format|
          if @stuff.save
             format.js 
          else
             format.js
          end
       end
     end

_addModal.html.erb

<div id="addModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Label</h3>
    </div>
        <div class="modal-body">
            <p>
                <fieldset>
                <label></label>
                <%= render 'form2' %>    
                </fieldset>
            </p>
        </div>
    </div>

_form2.html.erb

%= form_for(@stuff, :remote => true) do |f| %>

   <% if @stuff.errors.any? %>
     <div id="error_explanation">
       <div class="alert">
          <h2><%= @stuff.errors.count %></h2>

        <ul>
          <% @stuff.errors.full_messages.each do |msg| %>
           <li><%= msg %></li>
          <% end %>
        </ul>
            </div>
          </div>
               <% end %>

     <%= f.label :name %><br />
     <%= f.text_field :name %>


    <%= f.submit %>

  <% end %>

创建.js.erb

<%- if @stuff.errors.any? %>

           $('#addModal').html('<%= escape_javascript(render :partial => "form2") %>');

           <%- else %>

          $('#addModal').modal('hide').empty();


          <%- end %>

有什么想法可以让它发挥作用吗?

谢谢!

更新:

我还有几个问题: 1) 如果出现验证错误,create.js.erb 仅返回带有“form2”内容的新模态 - 没有 #addModal 布局。我该如何修复它?

2)提交成功后如何清除表单?

最佳答案

将其添加到 js.erb 文件中以自动重新加载页面

<%- if @stuff.errors.any? %>
  $('#addModal').html('<%= escape_javascript(render :partial => "form2") %>');
<%- else %>
  $('#addModal').modal('hide').empty();
  window.location.reload();
<%- end %>

关于javascript - 远程刷新页面=>真正的模式表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14790893/

相关文章:

javascript - CSS/Javascript - 按钮和链接未检测到悬停或单击?即使 z 指数最高?

css - 我怎样才能覆盖bootstrap css样式?

ruby-on-rails - Rails 5 重定向通知样式

javascript - 使用 jquery 定位父对象

javascript - 将下拉列表中的值添加到 KnockoutJS 中另一个下拉列表中的任意一组值

javascript - 使用 jquery ui 在 jquery 中设置动画(文本)颜色

javascript - 从表单中删除 'disabled' 属性并重新启用

ruby-on-rails - 如何在 heroku 中为我的 Saas 应用程序提供自定义域?

javascript - 将字符串(从 JSON 解析)转换为 javascript 日期对象时遇到问题

javascript - ReactJS:如何正确使用这个 textInput 组件?