Вопрос по jquery – Проверьте, является ли ввод текстовым полем, выберите, текстовое поле или радио

8

У меня есть форма с различными полями ввода HTML ...

1) <input type="text">
2) <textarea></textarea> 
3) <input type="checkbox">
4) <input type="radio">
5) <select></select>

Как бы я мог определить, какой тип поля ввода он использует jQuery.For example: If I wanted to do a check to see if input = "select" then do stuff.

я думаю, что вы можете использоватьeach() зациклить свою форму и выполнить некоторые условия внутри нее. Ricardo Binns
Я делаю это, но мне нужно проверить, какой это тип ввода или если выбрать, радио или текстовое поле Joe

Ваш Ответ

8   ответов
-1
1

написав селектор, который будет извлекать каждый из этих элементов, а затем вы можете пройтись по ним и проверить тип. Что-то вроде этого:

$('input, textarea, select').each(function() {
    var el = $(this);
    if(el.is('input')) { //we are dealing with an input
        var type = el.attr('type'); //will either be 'text', 'radio', or 'checkbox
    } else if(el.is('select')) { //we are dealing with a select
        //code here
    } else { //we are dealing with a textarea
        //code here
    }
});
1
var tipo = $('#elemento14').attr('type');
var tipo = $('#elemento14').prop('type'); jQ возвращает тип с помощью prop (), но & quot; не определено & quot; с помощью attr (). JQ, похоже, отказывается от attr ().
2

:input как селектор. посколькуselect а такжеtextarea элементы не имеютtype атрибут, который вы хотите использовать.is()

   $(':input').each(function(){
       if($(this).is('select')){
          var inputType = 'select';
       }else if($(this).is('input:text')){
          var inputType = 'text';
       }else if($(this).is('input:checkbox')){
          var inputType = 'checkbox';
       }
       console.log('input type = '+inputType+');
    });
16
$('input') // selects all types of inputs
$('input:checkbox') // selects checkboxes
$('select') // selects select element
$('input:radio') // selects radio inputs
$('input[type="text"]') // selects text inputs

event.target.typeОповещение какого типаinput, textrea или жеselect является целью мероприятия.

$('input, textarea, select').change(function(event){
   alert(event.target.type)
})

http://jsfiddle.net/Q4BNH/

+1 сейчас. Лучший ответ, так как он возвращает тип объекта; без сравнения, требуемого .is ().
Ответ Себастьяна, приведенный ниже, возвращает тип ввода элемента $ (хотя теперь вам нужно его использовать).prop("type") вместо.attr("type")
@FergusMorrow спасибо.
Хотя это правильный способ выбора конкретных полей формы, я думаю, что ОП хочетtest является ли элемент конкретным полем; не выбирать его.
1

Для 1, 3, 4:

$("input").attr('type');
вам, возможно, придется использовать.prop('type') чтобы получить значение - кажется, jQ отделяет использование attr () против prop ()
select и текстовая область не являются типами ввода, они являются отдельными элементами DOM.
Это дает мне неопределенный вариант выбора Joe
10

  if ( $(this).is("input") )   //or 
  if ( $(this).is('input:text') )

Больше информацииВот

1

http://api.jquery.com/is/

Нечто подобное

$(document).ready(function() {
    var items = $("input");
    if(items.first().is("input[type=text]")) {
     alert("Text type");            
    }
});

Вы можете проверить это здесь http://jsfiddle.net/JRLn9/2/

Похожие вопросы