我确信这已在这里得到解答,但我只是不知道如何说出这个问题。我使用以下方法获取表单的所有元素:
//get all form elements
$("#" + thisForm + " :input").map(function () {
//get element data
var elementName = $(this).attr('name');
var elementType = $(this).attr('type');
然后将它们存储在javascript对象中。问题是select和textarea元素没有类型,因此它们显示为未定义。有没有办法使用:input“)。map函数来过滤它们,还是我必须要这样:
$(thisForm + " > fieldset > select").add(thisForm + " > fieldset > textarea").each(function() {
// do stuff
});
由于
答案 0 :(得分:1)
如果返回的elementType
为undefined
,您可以尝试获取tagName
属性(普通Javascript HTMLElement
属性),该属性将返回标记本身的名称(如select
,textarea
等。)
所以你可以这样做:
var elementType = $(this).attr('type');
if (typeof elementType == 'undefined') {
elementType=this.tagName.toLowerCase();
}