如何将表单的所有元素转换为JavaScript对象?
我想有一些方法从我的表单中自动构建一个JavaScript对象,而不必遍历每个元素.我不想要返回的字符串,$('#formid').serialize();也不想要返回的地图$('#formid').serializeArray();
我需要使用jQuery提交表单,但在提交之前我想更改其中一个表单字段的值而不显示对用户的更改.我知道这不是最好的方式,但我的软件要求.
目前我使用:
var submit = $("#submitform").serialize();
Run Code Online (Sandbox Code Playgroud)
要序列化数据,然后使用它们提交
$.post('/post', submit)
Run Code Online (Sandbox Code Playgroud)
我的序列化数据是:
entry%5Bbody%5D=hello+and+welcome&addedContexts=presentation&context=prese ntation&selectedContexts=&statementid=×tamp=
Run Code Online (Sandbox Code Playgroud)
我只想将值entry%5Bbody%5D改为其他东西.
我知道我可以在字符串上使用正则表达式(我找不到哪个?),但也许您知道更优雅的解决方案?比如首先序列化表单,然后反序列化它,改变我需要的值,然后再次序列化它?
谢谢!
我有名字的表格'config[display][x]', 'config[display][y]', 'config[port]',...,或者我可以创建不同的格式。我想将它序列化为 JS 对象,例如
{config:
display : {x : 'value', y : 'value'},
port : 'value'
}
Run Code Online (Sandbox Code Playgroud)
有人知道现有的解决方案吗?
ps 我可以使用 jQuery 的 .serializeArray() 序列化表单,但我将拥有带有简单 {name : name, value : value} 散列的数组。但是如何创建对象呢?
我知道如何将一些参数传递给JQuery $ .getJSON回调方法,这要归功于这个问题:
$.getJSON('/website/json',
{
action: "read",
record: "1"
},
function(data) {
// do something
});
Run Code Online (Sandbox Code Playgroud)
我还可以将表单提交给$ .getJSON回调方法:
$.getJSON('/website/json', $(formName)
function(data) {
// do something
});
Run Code Online (Sandbox Code Playgroud)
但我想传递一些参数并提交一些表单元素.我怎样才能将这两件事结合起来?
我可以序列化表单元素并手动将一些参数添加到url,它看起来像是有效的:
$.getJSON('/website/json',
'action=read&record=1&'
+ $(formName).serialize(),
function(data) {
// do something
});
Run Code Online (Sandbox Code Playgroud)
但它看起来并不优雅.这是正确的方法,还是有更好的方法呢?