【问题标题】:Rails Ajax partials passing form builderRails Ajax 部分传递表单构建器
【发布时间】:2013-04-20 02:36:48
【问题描述】:

我正在使用 ajax 加载表单的一部分,具体取决于下拉列表的值,如下所示:

..form_partial.js.erb

 $('#custom_ajax').remove();
  <% if @house == "Rent" %>
   $('#rest_of_form').after('<div id="custom_ajax"><%= escape_javascript render('/houses/forms/rent') %></div>');
 <% else %>
   $('#rest_of_form').after('<div id="custom_ajax"><%= escape_javascript render('/houses/forms/buy') %></div>');
<% end %>

这里叫...

.._form.html.erb
<%= form_for @house, :validate => true, :html => { :class => 'form-horizontal',:multipart => true } do |f| %>

..........................................
..........................................

<div id = "rest_of_form"></div>
<div id="custom_ajax">
..........................................
..........................................

</div>
..........................................
..........................................
<script type="text/javascript">
$(document).ready(function() {
  $('#house_listing_type').change(function() {


$.ajax({ url: '/houses/' + this.value + '/form_partial' });

});
});
</script>

然后我可以用它加载文件,它工作得很好,唯一的问题是我需要将表单构建器传递给部分,因为我的 _buy.html.erb 看起来像这样

  <div class="control-group">
    <%= label :property_classification, "Property Classification", :class => "control-label" %>
      <div class="controls">
          <div class="input-prepend">
        <span class="add-on"><i class="icon-info-sign"></i></span>
          <%= select :property_classification, ["Residential","Commercial"], {},{:class=>"input-medium"} %>
        </div>
      </div>
    </div>

这显然需要表单生成器,我尝试将其作为本地等传递,但无济于事。我还尝试删除所有“f”。这可行,但表单显示不正确,并且更高级的表单构建器元素都不起作用..

如何让表单生成器进入局部?

谢谢

【问题讨论】:

    标签: javascript ruby-on-rails ajax forms partial-views


    【解决方案1】:

    我在这里用我提出的解决方案回答了同样的问题:

    pass form builder in remote_function in rails?

    【讨论】:

      【解决方案2】:

      http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html
      不依赖form_for时,要使用的表单构建器元素分别为label_tagselect_tag

      在这种情况下,您可能会发现同时使用form_tagfields_for 比使用form_for 更容易。

      【讨论】:

        猜你喜欢
        • 2013-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-19
        • 2011-04-22
        • 1970-01-01
        相关资源
        最近更新 更多