Динамически изменяющийся выбор, основанный на другом параметре выбора в той же форме? - PullRequest
0 голосов
/ 29 марта 2019

У меня есть форма с параметрами страны и штата.В зависимости от выбранной страны, я хочу, чтобы штат изменился, чтобы уменьшить выбор.

У меня есть помощники для штатов и стран

Я пытался:

<%= f.select(:country, options_for_select((countries), @stripe_account[:country]), {}, { class: "form-control input-lg" }) %>


  <div class="form-group">
     <%= f.label :address_state, "State/Province/Region" %>
     <div class="field <%= @stripe_account.country == 'US' ? 'present' : 'hidden' %>">
       <%= f.select(:address_state, options_for_select((us_states), @stripe_account[:address_state]), {}, { class: "form-control input-lg", id: "address_state us-states"}) %>
     </div>
     <div class= "field <%= @stripe_account.country == 'AU' ? 'present' : 'hidden' %>">
       <%= f.select(:address_state, options_for_select((au_regions), @stripe_account[:address_state]), {}, { class: "form-control input-lg", id: "address_state au_regions"}) %>
     </div>
...
</div>

Это не похоже на работу.И еще одна вещь, которая мне не нравится в этом, это то, что она только скрывает форму, но не скрывает стиль.Так что он просто скрыт и есть пустая область пространства.

Я сделал что-то подобное для других форм, но, кажется, не работает, если он не в HTML:

  $("#country").on("change",function(){"US"===$(this).val()?$("#banking-us, #banking-us-1").show():$("#banking-us, #banking-us-1").hide()});

Я пробовал это с формой рельсов, но, похоже, не сработало.

Все варианты основаны на помощниках для формы, таких как:

def countries
  [
    ['US'],
    ['AU'],
  ]
end

Как можноЯ делаю это?

1 Ответ

0 голосов
/ 29 марта 2019

Попробуйте плагин Carmen:

http://autonomousmachine.com/posts/2009/4/1/carmen-a-rails-plugin-for-geographic-names-and-abbreviations

Вы также можете проверить этот другой пост stackoverflow:

Ruby on Rails Страна / Штат Выбрать Enigma

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...