jQuery/javascript获取表单数据就像post数组一样
我有一个HTML表单,我希望它的所有数据都与$\u POST的结构相同。所以如果我有这样的输入:jQuery/javascript获取表单数据就像post数组一样,javascript,jquery,forms,object,Javascript,Jquery,Forms,Object,我有一个HTML表单,我希望它的所有数据都与$\u POST的结构相同。所以如果我有这样的输入: <input type="text" name=r[1][0] value="x"><input type="text" name=r[1][1] value="y"> obj = {r:{1:{0:x,1:y}}} 你能告诉我有什么办法吗?我尝试序列化数组()。。和其他“定制”解决方案都没有成功 谢谢!:) 1周前,我遇到了几乎相同的问题,我开发了一个可以将输入转换为J
<input type="text" name=r[1][0] value="x"><input type="text" name=r[1][1] value="y">
obj = {r:{1:{0:x,1:y}}}
你能告诉我有什么办法吗?我尝试序列化数组()。。和其他“定制”解决方案都没有成功
谢谢!:) 1周前,我遇到了几乎相同的问题,我开发了一个可以将输入转换为JavaScript对象的函数 这可能比你需要的更多,但你可以看看:
var myObj = {};
function addValueToObj(objet, nom) {
var pathBrackets = "";
var regex = /\[([0-9]+)\]$/;
nom = nom.split("=");
var path = nom[0].split('.');
val = nom.slice(1).join("=");
for (var i = 0, tmp = objet; i<path.length-1; i++) {
pathBrackets += path[i]+".";
if (path[i].match(regex)!=null) {
var valindex = path[i].match(regex)[1];
var index = path[i].match(regex).index;
var newPath = path[i].substring(index, 1-path[i].length);
if (typeof tmp[newPath] == "undefined") {
tmp = tmp[newPath] = [];
tmp = tmp[valindex] = {};
} else {
if (typeof tmp[newPath][valindex] == "undefined") {
tmp = tmp[newPath][valindex] = {};
} else {
tmp = tmp[newPath][valindex];
}
}
} else {
if (typeof tmp[path[i]] == "undefined") {
tmp = tmp[path[i]] = {};
} else {
tmp = tmp[path[i]];
}
}
}
tmp[path[i]] = val;
}
$(document).ready(function() {
$.each($("input"), function() {
addValueToObj(myObj, $(this).attr('name')+"="+$(this).val());
})
console.log(myObj);
})
希望它能帮助你
一周前,我遇到了几乎相同的问题,我开发了一个函数,可以将输入转换为JavaScript对象 这可能比你需要的更多,但你可以看看:
var myObj = {};
function addValueToObj(objet, nom) {
var pathBrackets = "";
var regex = /\[([0-9]+)\]$/;
nom = nom.split("=");
var path = nom[0].split('.');
val = nom.slice(1).join("=");
for (var i = 0, tmp = objet; i<path.length-1; i++) {
pathBrackets += path[i]+".";
if (path[i].match(regex)!=null) {
var valindex = path[i].match(regex)[1];
var index = path[i].match(regex).index;
var newPath = path[i].substring(index, 1-path[i].length);
if (typeof tmp[newPath] == "undefined") {
tmp = tmp[newPath] = [];
tmp = tmp[valindex] = {};
} else {
if (typeof tmp[newPath][valindex] == "undefined") {
tmp = tmp[newPath][valindex] = {};
} else {
tmp = tmp[newPath][valindex];
}
}
} else {
if (typeof tmp[path[i]] == "undefined") {
tmp = tmp[path[i]] = {};
} else {
tmp = tmp[path[i]];
}
}
}
tmp[path[i]] = val;
}
$(document).ready(function() {
$.each($("input"), function() {
addValueToObj(myObj, $(this).attr('name')+"="+$(this).val());
})
console.log(myObj);
})
希望它能帮助你
这里的感谢链接,它帮助我找到了我想要的东西:感谢链接,它帮助我找到了我想要的东西:非常好的解决方案,但我更喜欢以标准格式保存名称的解决方案。我在原始帖子的评论中添加了一个链接。这是一个很好的解决方案,但我更喜欢将名字保持在标准格式。我在原始帖子的评论中添加了一个链接。
{
"r":{
"1":{
"0":"x",
"1":"y"
}
}
}