Как проверить переключатель с помощью 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 ]

1369 голосов
/ 14 апреля 2011

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

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

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

$("#radio_1").attr('checked', 'checked');

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

230 голосов
/ 16 ноября 2012

Попробуйте это.

В этом примере я нацеливаю его на его входное имя и значение

$("input[name=background][value='some value']").prop("checked",true);

Полезно знать: в случае значения из нескольких слов оно будет работать и из-за апострофов.

94 голосов
/ 03 января 2012

Еще одна функция prop (), добавленная в jQuery 1.6, которая служит той же цели.

$("#radio_1").prop("checked", true); 
75 голосов
/ 17 октября 2012

Короткая и удобная для чтения опция:

$("#radio_1").is(":checked")

Возвращает true или false, поэтому вы можете использовать ее в выражении "if".

28 голосов
/ 20 декабря 2012

Попробуйте это.

Чтобы проверить переключатель с помощью Значение , используйте это.

$('input[name=type][value=2]').attr('checked', true); 

Или

$('input[name=type][value=2]').attr('checked', 'checked');

Или

$('input[name=type][value=2]').prop('checked', 'checked');

Для проверки радиокнопки используйте ID . Используйте это.

$('#radio_1').attr('checked','checked');

Или

$('#radio_1').prop('checked','checked');
12 голосов
/ 15 января 2015

Попробуйте:

$("input[name=type]").val(['1']);

http://jsfiddle.net/nwo706xw/

12 голосов
/ 19 июля 2013

Способ $.prop лучше:

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

, и вы можете проверить его следующим образом:

$(document).ready(function () {                            
    $("#radio_1, #radio_2", "#radio_3").change(function () {
        if ($("#radio_1").is(":checked")) {
            $('#div1').show();
        }
        else if ($("#radio_2").is(":checked")) {
            $('#div2').show();
        }
        else 
            $('#div3').show();
    });        
});
8 голосов
/ 14 апреля 2011

Вы должны сделать

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

Это атрибут HTML

5 голосов
/ 26 ноября 2014
$("input[name=inputname]:radio").click(function() {
    if($(this).attr("value")=="yes") {
        $(".inputclassname").show();
    }
    if($(this).attr("value")=="no") {
        $(".inputclassname").hide();
    }
});
5 голосов
/ 27 октября 2015

Да, у меня это получилось так:

$("#radio_1").attr('checked', 'checked');
...