将jquery序列化数据加载到表单中
我想知道如果已经序列化了表单,是否有一种简单的方法来填充该表单?例如,如果我有var form=$'myform'。serialize,我应该如何将该数据加载到表单中?是否有jquery函数可用,或者我应该手动设置表单中的所有值 示例表格:将jquery序列化数据加载到表单中,jquery,forms,serialization,populate,Jquery,Forms,Serialization,Populate,我想知道如果已经序列化了表单,是否有一种简单的方法来填充该表单?例如,如果我有var form=$'myform'。serialize,我应该如何将该数据加载到表单中?是否有jquery函数可用,或者我应该手动设置表单中的所有值 示例表格: <form id="myform"> <input type="text" name="first_name"/> <input type="text" name="last_name"/> <
<form id="myform">
<input type="text" name="first_name"/>
<input type="text" name="last_name"/>
<select name="gender">
<option val=""></option>
<option val="male">Male</option>
<option val="female">Female</option>
</select>
</form>
因此,我正在寻找一种快速简便的方法,用序列化数据重新填充相同的空白表单。使用下面的命令,但将其更改为使用id/class,而不是每个元素的name属性
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
当表单数据是键值对时,只需遍历对象数组并映射值即可。一些psuedo代码:
$.each(arr, function(k, v){
$('#newform .' + key).val(v);
});
使用下面的,但将其更改为使用id/class,而不是每个元素的name属性
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
当表单数据是键值对时,只需遍历对象数组并映射值即可。一些psuedo代码:
$.each(arr, function(k, v){
$('#newform .' + key).val(v);
});
尽管@Johan的答案很好,但到目前为止对我来说最好的解决方案是formParams。我使用$'myform'.serializeArray将我的表单转换为json对象,然后通过ajax将其发布到脚本中,保存到数据库中。当我必须重新填充表单时,我只需使用ajax请求获取json存储的表单数据,并将其与$'myForm'.formParams一起使用
我想知道为什么jquery没有在框架中实现这样一个函数…尽管@Johan的答案很好,但到目前为止对我来说最好的解决方案是formParams。我使用$'myform'.serializeArray将我的表单转换为json对象,然后通过ajax将其发布到脚本中,保存到数据库中。当我必须重新填充表单时,我只需使用ajax请求获取json存储的表单数据,并将其与$'myForm'.formParams一起使用 我想知道为什么jquery没有在框架中实现这样的功能