是否有可能使用 jQuery$.serialize()
或$.serializeArray()
获取正在序列化的输入字段的类型(它们的属性)?显然它在标题中发送输入名称,但我想知道我是否可以抓住:textarea
, input type="text"
, input type="radio"
?
问问题
1149 次
2 回答
1
这个怎么样?
var allInputs = $("#myform *:input").map(function (i,e)
{
return {id: $(e).attr("id"),
name: $(e).attr("name"),
type: $(e).attr("type"),
tag: $(e).get(0).tagName
};
}
);
见http://jsfiddle.net/cranio/6uBLQ/
它给出了一个具有这种形式的对象:
[{id: "c", name: "x" tag: "TEXTAREA" type: undefined},
{id: "a", name: "z", tag: "INPUT", type: "text"},
{id: "b", name: "y", tag: "INPUT", type: "hidden"},
...]
从中您可以使用其 id 引用输入,根据标签和/或类型采取不同的操作,序列化和发送此对象,等等。适用于隐藏、SELECT、TEXTAREA ...
于 2012-06-23T19:05:53.817 回答
0
可以轻松地将表单输入属性操作到您想要的任何结构。这里有2种口味
演示:http: //jsfiddle.net/zd3Pc/
/* array of element objects */
var formMap = $.map($('form :input'), function(el, idx) {
return {
type: el.type,
value: el.value,
name: el.name
};
});
/* object with arrays of name and value properties within type property */
var formObj = {}
$('form :input').each(function() {
if (!formObj[this.type]) {
formObj[this.type] = [];
}
formObj[this.type].push({
name: this.name,
value: this.value
})
})
于 2012-06-23T19:24:33.860 回答