JQuery изменить значение с переключателя - PullRequest
11 голосов
/ 26 января 2012

У меня есть переменная с именем 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 ]

39 голосов
/ 26 января 2012

Присоединить обработчик события к событию change:

$(':radio[name="category"]').change(function() {
  var category = $(this).filter(':checked').val();
});
14 голосов
/ 26 января 2012

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

var category = null;
$("input[name='category']").click(function() {
    category = this.value;
});
1 голос
/ 14 октября 2017

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

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

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

1 голос
/ 01 ноября 2015
var category;
    $(':radio[name="category"]').change(function() {
      category=this.value;
    });

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

1 голос
/ 26 января 2012

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

var category;

    $('radio[name="category"]').click(function(){
      category=this.value;
    });
0 голосов
/ 26 января 2012

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

0 голосов
/ 26 января 2012

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

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