我需要找到单选按钮,文本和选择的输入类型。由于<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)
}
全部谢谢!
答案 0 :(得分:63)
你可以这样做(fiddle here),制作一些易于使用的插件:
$.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's type
将获得所选第一个元素的类型。
其他信息
如果您只想要一些选择器,可以使用它:
$("input:text, input:radio, select");
或选择所有表单控件(more info):
$(":input") // can return all form types
答案 1 :(得分:2)
所有类型的输入框和选择框都由jQuery查找在一起:
$('#myForm').find('select,input').each(function(i,box){
alert($(box).attr('name'));
}