Как проверить, является ли тип ввода радио с использованием 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
}
Ответы
Ответ 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')