【问题标题】:Render rails partial on select change在选择更改时部分渲染导轨
【发布时间】:2014-08-08 06:11:36
【问题描述】:

我有一个看起来像这样的nested_form:

<% form_for @store, do |f| %>
   <%= f.fields_for :products do |builder| %>
      <%= builder.select :typeis, %w[test test1 test2], {}, class: "select_product" %>
      <div class='productHere'></div>
   <% end %>
<% end %>

基本上,我要做的是选择的onChange,取选择的值并渲染一个像这样的部分:

<%= f.hidden_field :name, value: "blah" %>

使用价值。所以如果select的值为test1,我要渲染_test1.html.erb。

我已经尝试过:

<script type='text/javascript'>
  $(function (){
     $(".select_product").on("change", function (){
        alert(<%= render 'product_form/test', f:builder %>);
     });
  });
</script>

但这不起作用。我做错了什么?

感谢您的帮助!

【问题讨论】:

  • 您的 jQuery 选择器使用的是“select_product”类而不是“selectProduct”。所以将 '$(".select_product")' 更改为 '$(".selectProduct")'
  • @BhushanKawadkar,谢谢,但仍然没有解决问题。
  • 您在 cosole 上看到任何错误吗?
  • @Bhushan Kawadkar,不,没有错误。

标签: javascript jquery ruby-on-rails ruby


【解决方案1】:

当您动态创建选择下拉菜单时,您需要使用以下代码绑定更改事件:

<script type='text/javascript'>
  $(function (){
     $(document).on("change",".selectProduct", function (){
        var selectValue = $(this).val();
        alert(<%= render 'product_form/test', f:builder %>);
     });
  });
</script>

【讨论】:

  • @Bshushan Kawadkar,谢谢这解决了我的问题!您知道如何在渲染调用中使用 select 的值吗?所以如果用户选择“test1”,我会渲染product_form/test1?
  • 您可以使用 '$(this).val();' 获取选择值。在渲染调用中使用它。查看更新的答案。
  • 谢谢!但是有没有办法在 ruby​​ 和 javascript 之间进行插值,所以我可以做类似的事情:alert(&lt;%= render 'product_form/#{selectValue}', f:builder %&gt;);?
  • 抱歉,我不太了解 ruby​​ :(
猜你喜欢
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
相关资源
最近更新 更多