10

我有一个带有不同 html 输入字段的表单...

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

我如何能够确定它使用 jQuery 的输入字段类型。例如:如果我想检查是否 input = "select" 然后做一些事情。

4

7 回答 7

21
$('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,这会提醒什么类型的inputtextrea或者select是事件的目标。

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

http://jsfiddle.net/Q4BNH/

于 2012-06-26T20:45:28.027 回答
15

您可以使用 jquery 的 .is()。例如

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

更多信息在这里

于 2012-06-26T20:46:54.953 回答
2

:input您可以使用as 选择器遍历所有表单元素。由于selectandtextarea元素没有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+');
    });
于 2017-01-02T10:42:55.167 回答
1

对于 1、3、4:

$("input").attr('type');
于 2012-06-26T20:44:39.187 回答
1

我建议你使用 JQuery is syntax

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/

于 2012-06-26T20:45:01.820 回答
1
var tipo = $('#elemento14').attr('type');
于 2012-06-26T20:45:06.657 回答
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
    }
});
于 2012-06-26T20:48:08.723 回答