Подтвердить что ты не робот

Кнопки jQueryUI Radio/Check не изменяются программно

Я могу с уверенностью прочитать значение переключателя 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>
4b9b3361

Ответ 1

После обновления значения, например:

$('[name="radio"][value="false"]').attr("checked", true);

Вам нужно указать пользовательский интерфейс jQuery для обновления, например:

$('#radio').buttonset("refresh");

Вы можете попробовать здесь.

Ответ 2

Я обычно делаю a:

$('[name="radio"][value="false"]').attr("checked", true).trigger("change");

вызов buttonet ( "refresh" ) привязан к событию изменения, которое просто не запускается, когда вы изменяете значение программно - запуск его вручную решает проблему ui, и вам не нужно беспокоиться о том, где набор кнопок это

Ответ 3

$('[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

Ответ 4

Я обычно делаю a:

$('[name="radio"][value="false"]').prop("checked", true).trigger("change");

Пожалуйста, используйте "prop" вместо "attr", чтобы изменить состояние "checked".