Как получить выбранное радио и выбрать значение поля одновременно, а не индивидуально

0

У меня есть простое приложение с рельсами, которое имеет немодельную форму с радио и поле выбора. Я хочу, чтобы текст изменялся на основе комбинации радио и выбора.

При изменении мне удалось получить текст от одного или другого. Но если я меняю радио, текст, который я получаю из поля выбора, является "неопределенным" и наоборот.

Это то, что у меня есть:

Посмотреть:

<%= form_tag "/tshirt/buy", role: "form", class: "tshirt_size_form" do %>
    <div class="form-group">
      <label for="genderRadio">Modelo:</label>
        <div class="radio-inline">
          <%= radio_button_tag(:gender, "male", checked: true) %>
            <%= label_tag(:gender_male, "Masculino") %>
        </div>
        <div class="radio-inline">
            <%= radio_button_tag(:gender, "female") %>
            <%= label_tag(:gender_female, "Feminino") %>
        </div>
  </div>    
  <div class="form-group">
    <%= select_tag :size, options_for_select([ "P", "M", "G", "GG"], "M"), class: "form-control tshirt_size_select" %>
    </div>    
    <div class="form-group">
          <%= button_tag "comprar", type: "submit", class: "btn btn-success" %>
    </div>    
    <div class="tshirt_size">
        <p>teste</p>
    </div>  
<% end %>

CoffeeScript:

jQuery ->
    $('.tshirt_size_select, input[name=gender]:radio').change ->
        size = $(this).closest('select').val()
        gender = $(this).closest('input[name=gender]:radio').val()
        $('.tshirt_size').text(gender + "_" + size)

PS: Да, мои обходные отрубы довольно плохие.

Теги:
coffeescript

1 ответ

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

.closest только проходит через предков, что означает, что братья и сестры не учитываются. Вы могли бы сделать что-то вроде этого:

jQuery ->
    $('.tshirt_size_select, input[name=gender]:radio').change ->
        size = $(this).closest("form").find('select').val()
        gender = $(this).closest("form").find('input[name=gender]:radio:checked').val()
        $('.tshirt_size').text(gender + "_" + size)

Который сначала перемещается назад к элементу формы, а затем выполняет поиск его дочерних элементов.

  • 0
    Вы спасатель жизни. Большое спасибо (приму через несколько минут, переполнение стека не позволит мне принять так быстро

Ещё вопросы

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