我想将表单序列化为json,处理json对象,然后将其重新序列化以通过ajax发送到php脚本。
这是我想要做的一个粗略的例子:
s = $('.dia_req_form').serialize();
j = //convert s to json ...HOW??
if(j.name)
{
alert("you must enter a name");
}
if(selectedID)
{
j.id = selectedID;
}
s = //serialize j ...HOW??
你可以看到两个部分说如何?
答案 0 :(得分:2)
您可以像这样使用.serializeArray()
和$.param()
:
//validate here
var obj = $('.dia_req_form').serializeArray();
if(selectedID) {
obj.push({ name: 'id', value: selectedID });
}
var s = $.param(obj); //s can be used for submission
在内部,.serialize()
实际上等同于$.param($(this).serializeArray())
,因此所有这一切都是将步骤分开,在需要时添加项目。
.serializeArray()
是一个包含2个属性(name
和value
)的对象数组,我们所做的只是在需要时向数组添加一些对象,然后< / em>调用$.param()
使其成为字符串。
答案 1 :(得分:0)
您可以使用此lib,$.serializeObject
是现有$.serialize
方法的变体,它不是将表单元素编码为字符串,而是将表单元素转换为可在JavaScript中使用的有效JSON对象应用。