我搜索了很多,但没有找到jquery serialize和serializeObjectjquery方法之间的完美区别.
请帮我理解这个.
SpY*_*3HH 34
正如您在此处所看到的,serializeObject它不是本机jQuery方法,因此只有在您或该站点的先前程序员插入它时才存在.正如在此处发现的问答中所提到的,当有人在您的网站上工作时,可能会找到此功能searched a way to serialize a form并找到以下扩展名:
$.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;
};
Run Code Online (Sandbox Code Playgroud)
寻找serializeObject你的JS中的某个地方,但请注意,它可能不需要,因为它似乎做同样的事情.$.fn.serialize
经过进一步审查,我发现它并不完全相同.serializeObject在其他问答环节中找到的方法会将表单的值序列化为Object,同时serialize将值编码为字符串以进行提交.
请注意,如果你想要的东西就像serailizeObject 是原产于jQuery的核心,那么请参阅serializeArray.
结果将略有不同,因为serializeArray它将构成表单值的对象数组.每个对象都有{ name: "", value: "" }
Developer Tools Console
小智 5
我在stackoverflow上做了一些关于将表单序列化为json对象的挖掘,我最终找到了这个方法
$.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;
};
Run Code Online (Sandbox Code Playgroud)
但它不适合我的工作。所以我创建了自己的插件。如果您有兴趣,您可以看看这个https://github.com/citnvillareal/serializeObject
| 归档时间: |
|
| 查看次数: |
32597 次 |
| 最近记录: |