Получить тип элемента формы с помощью jQuery - PullRequest
11 голосов
/ 29 февраля 2012

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

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

Ответы [ 5 ]

19 голосов
/ 29 февраля 2012

Вы можете использовать :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.

6 голосов
/ 29 февраля 2012

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

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

Для входов выберите и текстовое поле:

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

:input селектор документы :

Описание: выбор всех элементов ввода, текстовой области, выбора и кнопок.

JSFiddle DEMO

1 голос
/ 29 февраля 2012

Получение типа элемента (input, select, 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');
0 голосов
/ 29 февраля 2012

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

$(".checktype").click(function(){
  alert(this.tagName);
})
0 голосов
/ 29 февраля 2012

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

element.tagName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...