在选择更改时渲染rails部分

Render rails partial on select change

本文关键字:rails 部分 选择      更新时间:2023-09-26

我有一个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>

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

感谢所有的帮助!

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

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