Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JSON之间序列化表单_Javascript_Jquery_Json_Serialization - Fatal编程技术网

Javascript 在JSON之间序列化表单

Javascript 在JSON之间序列化表单,javascript,jquery,json,serialization,Javascript,Jquery,Json,Serialization,我想将表单序列化为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?

我想将表单序列化为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??
您可以看到两个部分,说明如何使用,如下所示:

//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
在内部,它实际上相当于
$.param($(this).serializeArray())
,因此所做的只是将步骤分开,在需要时添加一个项


是一个具有两个属性(
name
value
)的对象数组,我们所做的只是在需要时向数组中添加一些对象,然后调用使其成为字符串。

您可以使用此库,
$。serializeObject
是现有
$方法的变体。serialize
方法,将表单元素转换为可在JavaScript应用程序中使用的有效JSON对象,而不是将表单元素编码为字符串


为什么不在序列化之前进行检查?:)@Nick我可以事先验证,但我仍然需要向列表中添加其他变量。但是我总是可以将
&foo=bar
附加到序列化字符串中。如果这是最好的办法。