2012-02-09 2 views
5

Имея это радио кнопки в горизонтальном controlgroup:JQuery Мобильный - Изменение RadioButton состояния программно

<div data-role="fieldcontain"> 
<fieldset data-role="controlgroup" data-type="horizontal"> 
    <legend>Geslacht:</legend> 
    <input id="gender-male" name="gender" type="radio" value="MALE" /> 
    <label for="gender-male">Man</label> 
    <input id="gender-female" name="gender" type="radio" value="FEMALE" /> 
    <label for="gender-female">Vrouw</label> 
</fieldset> 
</div> 

На данный момент я хочу сбросить значения программно с помощью:

$('#gender-male').prop('checked', false) 
$('#gender-female').prop('checked', false) 

Однако укладка из радиокнопки не изменены.

E.g. выбран MALE, он по-прежнему отображается выбранным.

Должен ли я сделать какое-то обновление?

ответ

17

Посмотрите на это:

$('#gender-male').attr("checked",false).checkboxradio("refresh"); 
+3

У меня аналогичная проблема. Когда я пытаюсь это решение, я получаю следующую ошибку: Ошибка с нечистым: не может вызывать методы на кнопке до инициализации; попытался вызвать метод 'refresh'. Любые идеи о том, что вызывает это? Я не инициализирую контроль правильно? – Blake

0

Для JqueryMobile 1,4 рабочего раствора (тестирование) заключается в следующем:

(HTML взяты из JQM 1.4 демонстрационный код)

<form><fieldset data-role="controlgroup"> 
    <input type="radio" name="radio-choice-v-2" id="radio-choice-v-2a" value="on" checked="checked"> 
    <label for="radio-choice-v-2a" style="font-weight: 100;">radio button A</label> 
    <input type="radio" name="radio-choice-v-2" id="radio-choice-v-2b" value="off"> 
    <label for="radio-choice-v-2b" style="font-weight: 100;">radio button B</label> 
    </fieldset></form> 

Как и выше проверяется переключатель A. Вы хотите установить радиокнопку B, а A установить на непроверенную. Обратите внимание: checkboxradio («refresh») идет для каждого переключателя.

Javascript/Jquery (из JQM 1.4 API документация и реадаптированный)

if (radioSetting == 0) { 

     $("#radio-choice-v-2b").prop("checked", false).checkboxradio("refresh"); 
     $("#radio-choice-v-2a").prop("checked", true).checkboxradio("refresh"); 
    } 
    else { 
     $("#radio-choice-v-2a").prop("checked", false).checkboxradio("refresh"); 
     $("#radio-choice-v-2b").prop("checked", true).checkboxradio("refresh"); 
    } 
Смежные вопросы