首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在rails 3.1.0中动态添加选择框?

如何在rails 3.1.0中动态添加选择框?
EN

Stack Overflow用户
提问于 2012-01-14 23:30:32
回答 1查看 435关注 0票数 0

下面是我们想要动态添加到视图中的部分表单_standards.html.erb:

代码语言:javascript
复制
  <p><%= f.association :standards, :collection => Standard.active_std.all(:order => 'name'), :label_method => :name, :value_method => :id :include_blank => true %></p>

下面是调用_standards.html.erb的视图表单本身的_form_new.html.erb:

代码语言:javascript
复制
<%= simple_form_for @rfq do |f| %>    

  <div id="std">
  <%= render :partial => 'standards/standards', :collection => @rfq.standards, :locals => { :f => f } %>
  </div>
  <%= link_to_function("Add std", nil) do |page| %> 
    page.insert_html :bottom, 'std', :partial => 'standards/standards', :object => @rfq.standards.build 
  <% end %> 

  <%= f.button :submit, 'Save' %>  
<% end %> 

此解决方案不起作用,因为link_to_function不会通过加载_standards.html.erb来响应单击。这个解决方案似乎过时了,在rails 3.1.0中不起作用。我想知道在rails 3.1.0中是否有其他解决方案可以将动态内容添加到视图页面。如果你这样做了,请不要犹豫发帖。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-04-04 00:02:25

我知道这个答案在你需要它几个月后就会出现,但希望这能帮助其他遇到这个问题的人。下面是如何为您的示例动态添加一个选择框。

_form_new.html.erb

代码语言:javascript
复制
<%= simple_form_for @rfq do |f| %> 

  <a id="add-selection-box" href="#">Add Selection Box</a>
  <div id="std"></div>

  <script type="text/javascript">
    $(document).ready(function(){
      $("#add-selection-box").click(function() {  
        $("#std").append("<%= escape_javascript(render(:partial => 'standards/standards', :collection => @rfq.standards, :locals => { :f => f })) %>");
      });
    });
  </script>
<% end %>

下面是如何使用link_to_function完成此操作

_form_new.html.erb

代码语言:javascript
复制
<%= simple_form_for @rfq do |f| %>
  <%= add_selection_box "Add Selection Box", @rfq.standards, f %>
  <div id="std"></div>
<% end %>

helpers/my_form_helper.rb

代码语言:javascript
复制
module MyFormHelper
  def add_selection_box(name, collection, form)
    page = %{
      partial = "#{escape_javascript(render(:partial => "standards/standards", :collection => collection, :locals => { :f => form }))}";

      $("#std").append(partial);
    }

    link_to_function name, page
  end
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8863177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档