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

Как проверить, является ли тип ввода радио с использованием jquery

Я хочу обрабатывать элементы html по-разному в зависимости от их типа.

С помощью jquery, как я могу проверить, является ли тип ввода переключателем?

Я пробовал:

if ($('#myElement').is(':radio')) {
    ....//code here
}

и

if ($('#myElement').is("input[type='radio']")) {
    ....//code here
}

Ни один из них не работал. Любые идеи?

EDIT:

if ($('#myElement').is(':radio')) {
    ....//code here
}

работает, но мои переключатели не имеют атрибута id, у них только атрибут имени, поэтому он не работает.

Я изменил свой код на:

if ($('input[name=' + myElement + ']').is(":radio")) {
    ....//code here
}
4b9b3361

Ответ 1

Это должно работать до тех пор, пока элементы загружаются.

// Ensure the DOM is ready
$(function() {
    if ($('#myElement').is(':radio')) {
        //code here
    }
});

Если вы назначаете обработчики на основе типа, другой подход заключается в использовании .filter().

$(function() {
    var el = $('#myElement');
    el.filter(':radio').change(function() {
        //code here
    });

    el.filter(':checkbox').change(function() {
        // other code here
    });
});

Если он не передает filter(), обработчик не будет назначен.

Ответ 2

Это должно работать, вы можете попробовать использовать фильтр таким образом вместо

if ($('#myElement').filter(':radio').size() > 0) {
    ....//code here
}
and

if ($('#myElement').filter("input[type='radio']").size() > 0) {
    ....//code here
}

Или

$('#myElement:radio').each(function() {
        ....//code here
});

Udate: Вы также уверены, что идентификатор уникален на странице? Если вы хотите выбрать более 1 элемент, вы можете использовать класс.

Ответ 3

if($('#my-element').attr('type') == 'radio')