Установка значения переключателя с помощью JQuery (ASP.NET MVC) - PullRequest
1 голос
/ 25 марта 2010

У меня есть 2 "списка" из (4) переключателей {value = "0", "1", "2", "3"} во всех списках. Первый список должен управлять вторым списком (который может встречаться несколько раз). Таким образом, если опция выбрана в первом списке, та же опция выбирается во втором списке. Звучит странно, но у него есть цель. Первый список представляет собой тип списка «выбрать все», а второй список представляет собой отдельные списки выбора.

У меня есть значение списка "selectall" через JQuery:

$("#selectalllist").change(function() {
    var str = $('input[name=selectall]:checked').val();
    $(".radiolist").attr('checked', str);   //This is my thinking
});

Текущее выбранное значение хранится в переменной str, и это, по-видимому, правильно (я использовал alert, чтобы сообщить мне, что хранится, и он показывает, что я ожидаю). Мне просто нужно установить значение следующего набора списков. Вторая строка кода, который я думал, установит проверенное значение $ (". Radiolist") в сохраненное значение, но ВСЕГДА устанавливает значение последней записи (значение = "3").

Мне интересно, есть ли у меня неправильный атрибут в вызове .attr ('', str)? Есть мысли?

По запросу:

(Выбрать все кнопки)

<input type="radio" id="radCurrent" name="selectall" value="0" /><label for="radCurrent">Current</label>
<input type="radio" id="radFuture" name="selectall" value="1" /><label for="radFuture">Future</label>
<input type="radio" id="radCurrentAll" name="selectall" value="2" /><label for="radCurrentAll">CurrentAll</label>
<input type="radio" id="radFutureAll" name="selectall" value="3" /><label for="radFutureAll">FutureAll</label>

(список кнопок)

<input type="radio" name="selectvalue" id="Current" value="0" class="radiolist" /> C
<input type="radio" name="selectvalue" id="Future" value="1" class="radiolist" /> F
<input type="radio" name="selectvalue" id="CurrentAll" value="2" class="radiolist" /> CA
<input type="radio" name="selectvalue" id="FutureAll" value="3" class="radiolist" /> FA

Ответы [ 2 ]

1 голос
/ 25 марта 2010

Для этого вам нужен немного другой подход, основанный на опубликованном вами html:

$("input[name=selectall]").change(function() {
  var str = $('input[name=selectall]:checked').val();
  $(".radiolist[value='" + str + "']").attr("checked", true);
});

Здесь кое-что изменилось:

  • У входов есть имя, а не ID selectall, поэтому нужно выбирать по нему.
  • attr("checked", true) может быть истинным / ложным (вместо значения), есть кросс-браузерные проверки, чтобы обработать это в j? Query внутренне.
  • Для настройки вы также хотите захватить нужную кнопку-переключатель и проверить ее. Тот факт, что они находятся в одной группе, заставит браузер снять отметку с предыдущего выбора.
1 голос
/ 25 марта 2010

Вам необходимо выбрать опцию

$("#selectall").change(function() {
    var str = $('#selectall:checked').val();
    $(".radiolist[value='" + str + "']").attr("checked", "checked");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...