gpt4 book ai didi

javascript - 使用 JQuery 并考虑子 JSON 对象将表单解析为 JSON 对象

转载 作者:行者123 更新时间:2023-12-03 11:18:30 24 4
gpt4 key购买 nike

我正在尝试从数据中提取数据以提交它,为此我使用了 jquery serializeArray() 函数。它工作得非常好,并以 {name:value} 对象的数组形式提供输出。这个名称与我在表单中为每个元素给出的名称相似。但我想要侧面子文档中的几个字段(名称)。举个例子

HTML

<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<form class="login">
<label for="_user_name">username:</label>
<input type="text" id="_user_name" name="user.name" value="dev.pus" />
<label for="_user_pass">password:</label>
<input type="password" id="_user_pass" name="user.pass" value="1234" />
<button type="submit">login</button>
</form>
</body>
</html>

JavaScript

var docFormParams = $("form.login"),
docData = docFormParams.serializeArray();


var finalJson ={};

for (var i = 0; i < docData.length; i++) {
finalJson[docData[i].name] = docData[i].value;

}

console.log(JSON.parse(JSON.stringify(finalJson)));

输出

[object Object] {
user.name: "dev.pus",
user.pass: "1234"
}
finalJson
[object Object] {
user.name: "dev.pus",
user.pass: "1234"
}
finalJson.user
undefined
[object Object] {
user.name: "dev.pus",
user.pass: "1234"
}

我想要的输出:

{
user :{name :"dev.pus",
pass :"1234"

}
}

正如你所看到的,我尝试在名称中添加点,但它不起作用。有什么方法可以解决这个问题吗?谢谢

最佳答案

$("form.login").serializeArray();  

将返回一个数组:

[{"name":"user.name","value":"dev.pus"},{"name":"user.pass","value":"1234"}]

您应该“拆分”每个元素的“名称”,或更改输入处的“名称”。“split”示例:http://jsfiddle.net/n1su1q0h/

关于javascript - 使用 JQuery 并考虑子 JSON 对象将表单解析为 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27226223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com