Ответ 1
После обновления значения, например:
$('[name="radio"][value="false"]').attr("checked", true);
Вам нужно указать пользовательский интерфейс jQuery для обновления, например:
$('#radio').buttonset("refresh");
Я могу с уверенностью прочитать значение переключателя jQueryUI, однако я не могу установить его программно. Независимо от того, какие методы я использую для изменения значения переключателя, интерфейс jQueryUI не обновит свой интерфейс.
<div id="radio">
<input type="radio" name="radio" value="true" checked="checked" />Yes
<input type="radio" name="radio" value="false" />No
</div>
<script type="text/javascript">
$('#radio').buttonset();
// One of the many ways that won't work.
$('[name="radio"]:radio:checked').val("false");
</script>
После обновления значения, например:
$('[name="radio"][value="false"]').attr("checked", true);
Вам нужно указать пользовательский интерфейс jQuery для обновления, например:
$('#radio').buttonset("refresh");
Я обычно делаю a:
$('[name="radio"][value="false"]').attr("checked", true).trigger("change");
вызов buttonet ( "refresh" ) привязан к событию изменения, которое просто не запускается, когда вы изменяете значение программно - запуск его вручную решает проблему ui, и вам не нужно беспокоиться о том, где набор кнопок это
$('[name="state"]:radio:checked').attr('checked', true); // checked
$('[name="state"]:radio:checked').removeAttr('checked'); // unchecked
** ПРИМЕЧАНИЕ **
$(':radio').val(); // same as $(':radio').attr('value');
Таким образом:
$(':radio[checked]').val(); // -> the value of the first checked radio button found
Я обычно делаю a:
$('[name="radio"][value="false"]').prop("checked", true).trigger("change");
Пожалуйста, используйте "prop" вместо "attr", чтобы изменить состояние "checked".