jQuery продолжает получать значение неправильного переключателя, если по умолчанию установлен флажок

#javascript #jquery #radio-button #default

#javascript #jquery #переключатель #По умолчанию

Вопрос:

Переключатели, первый из которых установлен по умолчанию:

   <div class="shipping">
    <div class="title">Select shipping method</div>
    <label><input type="radio" name="shipping" value="courier-dpd" checked="checked">Courier DPD</label>
    <label><input type="radio" name="shipping" value="personal">Personal pick up</label>
    <button>Next</button>
  </div>
  

Js:

 $(document).on('click', '.shipping button', function() {
  let val = $('.shipping').find('input[name="shipping"]:checked').val()
  console.log(val);
}
  

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

Почему это? Я не могу найти решение.

Ответ №1:

Правка 2: Добавлен JS-код из обновленного вопроса. Похоже, здесь это работает.

Редактировать: Добавлена кнопка отправки для демонстрации действия отправки.


Ну что, ты вызываешь console.log после изменения значения? Я создал фрагмент ниже, и он отлично работает.

 $(function() {
  let val = $('.shipping').find('input[name="shipping"]:checked').val()
  console.log(val);

  /*$('#btn').on('click', function() {
    let val = $('.shipping').find('input[name="shipping"]:checked').val()
    console.log(val);
  })*/

  $(document).on('click', '.shipping button', function() {
    let val = $('.shipping').find('input[name="shipping"]:checked').val()
    console.log(val);
  })
})  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="shipping">
  <div class="title">Select shipping method</div>
  <label><input type="radio" name="shipping" value="courier-dpd" checked="checked">Courier DPD</label>
  <label><input type="radio" name="shipping" value="personal">Personal pick up</label>
  <button>Next</button>
</div>  

Комментарии:

1. по какой-то причине это определенно не работает в моем проекте

2. Использование точно такого же кода, который я опубликовал, не работает?

3. Я обновил свой вопрос, чтобы вы могли видеть, как я обрабатываю событие

4. Где находится кнопка?

5. Прямо под входными данными, добавленными к моему вопросу