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

JQuery найти тип ввода (но также и для выбора)

Мне нужно найти тип ввода для радиокнопок, текста и выбора. Легко найти входной тип чего-либо с <input type="x">, так как $(this).attr("type") вернет x

Моя проблема в том, что мне нужно поддерживать элементы <select>, которые не имеют атрибута type. Конечной целью является возвращение радио, текста или выбора.

Я думал сделать что-то подобное, но мне было любопытно, есть ли лучший способ:

if ($(this).tagName == "input") {
    var result = $(this).attr("type");   //returns radio or text (the attr type)
} else {
    var result = $(this).tagName;        //returns select (the element type)
}

Спасибо всем!

4b9b3361

Ответ 1

Вы можете сделать это (скрипка здесь), сделать какой-то простой в использовании плагин:

$.fn.getType = function(){ return this[0].tagName == "INPUT" ? this[0].type.toLowerCase() : this[0].tagName.toLowerCase(); }

И используйте его вот так

$(".element").getType(); // Will return radio, text, checkbox, select, textarea, etc (also DIV, SPAN, all element types)
$(".elList").getType(); // Gets the first element type

Какой тип выбранного первого элемента будет выбран.

Другая информация

Если вы просто хотите иметь несколько селекторов, вы можете использовать это:

$("input:text, input:radio, select");

Или выберите все элементы управления формой (подробнее):

$(":input") // can return all form types