Значение изменения jQuery с кнопку радио

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

вот код, который у меня есть:

<form>
<input type="radio" name="category" value="doctor" /> Doctor
<input type="radio" name="category" value="police" checked /> Policia
</form>

var category = $('[name="category"]:checked').val();

мне нужно, чтобы вы автоматически изменили значение переменной category при нажатии переключателей.

7 ответов


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

var category = null;
$("input[name='category']").click(function() {
    category = this.value;
});

прикрепить обработчик событий к change событие:

$(':radio[name="category"]').change(function() {
  var category = $(this).filter(':checked').val();
});

Я думаю, тебе нужно просто что-то вроде этого:

var category;

    $('radio[name="category"]').click(function(){
      category=this.value;
    });

var category;
    $(':radio[name="category"]').change(function() {
      category=this.value;
    });

и это jsfiddle.net демо.


вы не должны давать один и тот же идентификатор для более чем одного элемента, вы должны использовать класс вместо этого :

<form>
  Option 1<input type="radio" name="opt" class="radio" value="Option 1">
  Option 2<input type="radio" name="opt" class="radio" value="Option 2">
</form>

вместо :

<form>
  Option 1<input type="radio" name="opt" id="radio" value="Option 1">
  Option 2<input type="radio" name="opt" id="radio" value="Option 2">
</form>

и ваш код все равно тот же и он должен работать нормально :)


вместо category переменная use $('[name="category"]:checked').val() везде, где вы хотите значение переключателя checked. В противном случае вы можете использовать change или click событие настройка checked значение переключателей в category переменной.


использовать .change () для того, чтобы захватить событие изменения для переключателя.