Визуализация рельсов частично при выбранном изменении

0

У меня есть вложенная_формация, которая выглядит так:

<% 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 из select, взять значение select и сделать частичным, как:

<%= 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>

Но это не работает. Что я делаю не так?

Спасибо за любую помощь!

  • 0
    ваш селектор jQuery использует класс «select_product» вместо «selectProduct». поэтому замените $ (". select_product") на $ (". selectProduct") '
  • 0
    @BhushanKawadkar, спасибо, но все еще не решил проблему.
Показать ещё 3 комментария

1 ответ

1
Лучший ответ

Когда вы динамически создаете выпадающий список, вам необходимо связать событие изменения с помощью кода ниже:

<script type='text/javascript'>
  $(function (){
     $(document).on("change",".selectProduct", function (){
        var selectValue = $(this).val();
        alert(<%= render 'product_form/test', f:builder %>);
     });
  });
</script>
  • 0
    @Bshushan Kawadkar, спасибо, это решило мою проблему! Знаете ли вы, как я могу использовать значение select в вызове рендеринга? Так что, если пользователь выбирает «test1», я отображаю product_form/test1 ?
  • 0
    Вы можете получить значение select, используя '$ (this) .val ();'. используйте это в вызове рендеринга. Смотрите обновленный ответ.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню