Получить тип элемента формы с помощью jQuery

У меня есть форма с некоторыми входами и выборами. Я хочу получить тип элемента при щелчке с помощью jQuery. Я знаю, что могу использовать attr("input") для получения, если элемент радио, флажок или текст, но как насчет selects и textarea?

Есть ли общая функция, например .type(), чтобы ее получить?

Ответ 1

Вы можете использовать :input, чтобы выбрать все элементы ввода.

Вы можете попробовать что-то вроде...

$('#your-form').find(':input').click(function() {
    var type = this.type || this.tagName.toLowerCase();
    alert(type);
});

Для элементов input это должно дать вам атрибут type, например text, radio, checkbox и т.д.

Для элементов select и textarea он должен дать вам имя тега, например select или textarea.

Ответ 2

Первый .attr('input') не даст вам тип, используйте его для входов:

var type = $('input').attr('type')

Для входов, select и textarea:

$('#formId :input').click(function() {
    alert(this.tagName != 'INPUT' ? this.tagName : this.type);
});​

:input selector docs:

Описание. Выбирает все элементы ввода, textarea, select и button.

JSFiddle DEMO

Ответ 3

Получение типа элемента (ввод, выбор, div, span и т.д.):

var elementType = $(this).prop('tagName');

Проверка определенного типа элемента:

var is_element_input = $(this).is("input"); //true or false

Получение типа ввода (input type="button" и т.д.)

var inputType = $(this).attr('type');

Ответ 4

Выбирает, а текстовые области - разные теги. Используйте tagName.

element.tagName

Ответ 5

Дайте всем вашим элементам имя класса сказать "checktype", а затем используйте: -

$(".checktype").click(function(){
  alert(this.tagName);
})