我有一个表单,当我单击“提交”时,应该更新同一页面上的部分文档…当我将其放置在此处时:
page.replace_html 'show_cards_div', 'Hello'
它按照应有的方式运行,在需要时显示问候。但是当我进入这个…
page.replace_html 'show_cards_div', :partial => "reloadThisPartial"`
它根本不做任何事情。我究竟做错了什么?
该请求可能不是Ajax调用。拨打Ajax电话。用户remote_form_for代替form_for或使用jquery.form向控制器发送ajax调用。如果您使用的是jquery,请执行以下操作:
<%= javascript_include_tag "jquery-1.4.4.min.js", "jquery.form" %> <%= form_for :user, :url => {:controller => "come_controller",:action => "some_action"}, :html => {:id => 'form_id', :class => 'cmxform', :onsubmit => "return false;"} do |f| %> ...................................... <% end %> <script type="text/javascript"> $('#form_id').submit(function() { var container = $("#show_cards_div"); $(this).unbind('submit').ajaxSubmit({ success: function(data) { container.html(data); } }) return false }); </script>
在控制器中做这样的事情。
render :partial => "reloadThisPartial", :layout => false, :locals =>{:users =>@users}