在Rails中提交表单后,Bootstrap模式不会被解雇

我在Rails 3应用程序中遇到了一个bootstrap模式的问题。 它目前处理一个审核表单,提交和更新数据库就好了,但是在提交表单时模式不会关闭。 我已经尝试将其添加到表单提交按钮:

:data => {:dismiss => "modal"} 

但是它会在不执行更新操作的情况下关闭模态。 这是我的模态代码:

     

这是review_ballot方法的场地助手

 module VenuesHelper def review_ballot if @review = current_user.reviews.find_by_venue_id(params[:id]) @review else current_user.reviews.new end end def current_user_review if @review = current_user.reviews.find_by_venue_id(params[:id]) @review.score else "N/A" end end end 

对于现在尝试的东西,我感到很茫然。 我用Google搜索过,没有运气。 我该如何解决?

编辑:我的临时解决方案 – 我已从模态中删除:remote => true并在控制器操作中重定向访问者,所以现在我不必担心它被解雇。

它显然很笨拙/笨拙,所以如果有人能帮助我解决这个问题,我仍然会喜欢它。 愿意按需提供更多代码/信息。

在您的情况下,我的意思是您没有上传任何图像。 所以你可以简单地去ajax呼叫提交。 这是一个简单的代码

 $(document).ready(function(){ $('#submit_button_id').click(function() { var valuesToSubmit = $("#form_id").serialize(); $("#modal_id").modal('hide') ; $.ajax({ url: "/controller/method", data: valuesToSubmit, type: "POST/GET/PUT" }).success(function(data, status){ $("#id_if_div_where_you_want_to_show_updated_data").html( data ); }); return false; }); }); 

编辑

控制器方法如下所示

 def method Do what you want to do @object = Model.some_queries render :template => "path_to_view_file like controller_name/method_name", :layout => false end 

我通过将提交绑定到hidden.bs.modal事件来解决这个问题:

 $('#modal_id').on('hidden.bs.modal', function() { $('form').submit(); form_submitted = false; }); 

要防止表单在按钮上单击提交,可以使用return false; 在表单的onclick事件中:

 <%= submit_tag 'Save review', class: 'btn btn-warning', :data => { :dismiss => 'modal' }, :onclick => "form_submitted = true; return false;" %> 

编辑:

向onclick事件添加了form_submitted = true ,因此您知道在提交时关闭的模式而不是任何其他退出条件。 $('form').submit()重置为false $('form').submit()已调用$('form').submit() 。 将此变量添加到您的javascript文件中,最初为false。