Как проверить переключатель с помощью jQuery? - PullRequest
824 голосов
/ 14 апреля 2011

Я пытаюсь проверить переключатель с помощью jQuery. Вот мой код:

<form>
    <div id='type'>
        <input type='radio' id='radio_1' name='type' value='1' />
        <input type='radio' id='radio_2' name='type' value='2' />
        <input type='radio' id='radio_3' name='type' value='3' /> 
    </div>
</form>

И JavaScript:

jQuery("#radio_1").attr('checked', true);

Не работает:

jQuery("input[value='1']").attr('checked', true);

Не работает:

jQuery('input:radio[name="type"]').filter('[value="1"]').attr('checked', true);

Не работает:

У вас есть другая идея? Чего мне не хватает?

Ответы [ 30 ]

1 голос
/ 05 октября 2015

У меня просто похожая проблема, простое решение - просто использовать:

.click()

Любое другое решение будет работать, если вы обновите радио после вызова функции.

1 голос
/ 24 апреля 2014

попробуйте

 $("input:checked", "#radioButton").val()

, если отмечен, возвращает True, если не отмечен, возвращает False

jQuery v1.10.1
1 голос
/ 20 февраля 2019

Удивительно, но самый популярный и принятый ответ игнорирует запуск соответствующего события, несмотря на комментарии. Убедитесь, что вы вызываете .change(), иначе все привязки "при изменении" будут игнорировать это событие.

$("#radio_1").prop("checked", true).change();
0 голосов
/ 21 мая 2019

Если вы не хотите включать большую библиотеку, такую ​​как jQuery, для чего-то такого простого, вот альтернативное решение с использованием встроенных методов DOM:

// Check checkbox by id:
document.querySelector('#radio_1').checked = true;

// Check checkbox by value:
document.querySelector('#type > [value="1"]').checked = true;

// If this is the only input with a value of 1 on the page, you can leave out the #type >
document.querySelector('[value="1"]').checked = true;
<form>
    <div id='type'>
        <input type='radio' id='radio_1' name='type' value='1' />
        <input type='radio' id='radio_2' name='type' value='2' />
        <input type='radio' id='radio_3' name='type' value='3' /> 
    </div>
</form>
0 голосов
/ 17 января 2019

Кроме того, вы можете проверить, отмечен элемент или нет:

if ($('.myCheckbox').attr('checked'))
{
   //do others stuff
}
else
{
   //do others stuff
}

Вы можете проверить наличие непроверенного элемента:

$('.myCheckbox').attr('checked',true) //Standards way

Вы также можете снять этот флажок:

$('.myCheckbox').removeAttr('checked')

Вы можете проверить радиокнопку:

Для версий jQuery, равных или выше (> =) 1.6, используйте:

$("#radio_1").prop("checked", true);

Для версий до (<) 1.6 используйте: </p>

$("#radio_1").attr('checked', 'checked');
0 голосов
/ 20 сентября 2018

attr принимает две строки.

Правильный путь:

jQuery("#radio_1").attr('checked', 'true');
0 голосов
/ 25 мая 2018

attr принимает две строки.

Правильный путь:

jQuery("#radio_1").attr('checked', 'true');
0 голосов
/ 17 сентября 2014

Некоторые вышеупомянутые решения не работают, тогда вы можете попробовать ниже:

jQuery.uniform.update(jQuery("#yourElementID").attr('checked',true));
jQuery.uniform.update(jQuery("#yourElementID").attr('checked',false));

Еще один способ попробовать:

jQuery("input:radio[name=yourElementName]:nth(0)").attr('checked',true);
0 голосов
/ 14 апреля 2011
$("#radio_1").attr('checked', true);
//or
$("#radio_1").attr('checked', 'checked');
0 голосов
/ 09 июня 2014

Попробуйте:

$(document).ready(function(){
  $("#Id").prop("checked", true).checkboxradio('refresh');
});
...