JQuery проверить, если вход является флажок типа?

121

Я хотел бы узнать, установлен ли флажок или нет, а следующее не работает:

$("#myinput").attr('checked') === undefined

Еще раз спасибо!

5 ответов

270
Лучший ответ

Вы можете использовать псевдоселектор :checkbox с вызовом функции jQuery is:

$('#myinput').is(':checkbox')
  • 1
    Это метод, который я всегда использую.
  • 0
    Вы действительно не можете стать проще, чем это.
Показать ещё 4 комментария
21
>>> a=$("#communitymode")[0]
<input id="communitymode" type="checkbox" name="communitymode">
>>> a.type
"checkbox"

Или, скорее, стиль jQuery:

$("#myinput").attr('type') == 'checkbox'
  • 0
    Совершенно верно. Не самое простое.
  • 6
    Это экономит с помощью механизма выбора jQuery, использование которого здесь совершенно неуместно. Первый вариант намного лучше, поскольку позволяет избежать любой путаницы в функции jQuery attr() .
Показать ещё 2 комментария
8
$("#myinput").attr('type') == 'checkbox'
6

Решение, отличное от jQuery, похоже на решение jQuery:

document.querySelector('#myinput').getAttribute('type') === 'checkbox'
2

Используйте эту функцию:

function is_checkbox(selector) {
    var $result = $(selector);
    return $result[0] && $result[0].type === 'checkbox';
};

Или этот плагин jquery:

$.fn.is_checkbox = function () { return this.is(':checkbox'); };

Ещё вопросы

Сообщество Overcoder
Наверх
Меню