2016-10-14 2 views
0

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

<label><input type="radio" name="GroupTypeOffUnitOnUnit" value="0">1:1</label> 

<label><input type="radio" name="GroupTypeOffUnitOnUnit" value="1">Option</label> 
<label><input type="radio" name="GroupTypeOffUnitOnUnit" value="2">Other Option</label> 

Я Получение значений над AJAX, и я подтвердил, что значения возвращаются в верный. Однако, когда я пытаюсь программно установить значение в значение, меньшее, чем текущее значение, например, текущее значение равно 2, и я пытаюсь установить его на 1, выбранный переключатель остается кнопкой с 2. С другой стороны , если текущий выбранный переключатель имеет значение 1, я могу установить его на два.

Я чувствую, что это может иметь какое-то отношение к порядку, в котором кнопки появляются на веб-странице, поскольку более высокие значения появляются после более низких значений, но я пытаюсь понять это. Кроме того, вот моя функция javascript, которая должна проверять новое значение.

function setRadioInputValue(targetid, name, value) 
{ 
    $("#" + targetid + " input[name=" + name + "][value=" + value + "]").attr('checked', true); 
} 

ответ

0

Подумав до конца, я решил вызвать щелчок на определенной кнопке радио, так что вызов должен выбрать радиокнопку затем вызвать функцию .click() следующим образом:

$("#" + targetid + " input[name=" + name + "][value=" + value + "]").click(); 
1

Вам нужно сначала установить значение значка целевого входа в значение false, а THEN установить тот, который вы хотите как истинный. В противном случае значение «самый высокий» (или самый дальний ребенок), установленный на true, будет отображаться как отмечено.

Что-то вроде этого:

function setRadioInputValue(targetid, name, value) { 
    $("#" + targetid + "input[name=" + name + "]").each(function(it) { 
     it.attr('checked', false); 
    }); 
    $("#" + targetid + " input[name=" + name + "][value=" + value + "]").attr('checked', true); 
} 
1

Вы, наверное, не хватает дополнительных апострофы. Попробуйте следующее:

function setRadioInputValue(targetid, name, value) { 
    $("#" + targetid + " input[name='" + name + "'][value='" + value + "']").attr('checked', true); 
} 
Смежные вопросы