使用ajax时,常常需要拼装input数据为'name=abc&sex=1'这种形式,用JQuery的serialize方法可以轻松的完成这个工作。如:
<form id="form1">
<input name="name1" type="text" value="pipi" />
<input name="name2" type="radio" value="1" checked/>boy<input name="name2" type="radio" value="0"/>girl
<textarea name="name3">test</textarea>
</form>
使用:
$("#form1").serialize();
结果:
name1=pipi&name2=1&name3=test
但是有个问题,如果是下面的情况:
<form id="form1">
<input name="name" type="text" value="pipi" />
<input name="blog" type="text" value="blue submarine" />
</form>
使用:
$("#form1").serialize();
结果:
name1=pipi&blog=blue+submarine
就是如何能让+号变回空格呢?
还有一个问题,如下所示:
<form id="form1">
<input name="length" type="text" value="pipi" />
<input name="blog" type="text" value="blue submarine" />
</form>
使用:
$("#form1").serialize();
结果:
blog=blue+submarine
没法出现length=pipi
原因是length是js数组的属性关键字,出现冲突了,将name改为其他非冲突字符串即可
<form id="form1">
<input name="name1" type="text" value="pipi" />
<input name="name2" type="radio" value="1" checked/>boy<input name="name2" type="radio" value="0"/>girl
<textarea name="name3">test</textarea>
</form>
使用:
$("#form1").serialize();
结果:
name1=pipi&name2=1&name3=test
但是有个问题,如果是下面的情况:
<form id="form1">
<input name="name" type="text" value="pipi" />
<input name="blog" type="text" value="blue submarine" />
</form>
使用:
$("#form1").serialize();
结果:
name1=pipi&blog=blue+submarine
就是如何能让+号变回空格呢?
还有一个问题,如下所示:
<form id="form1">
<input name="length" type="text" value="pipi" />
<input name="blog" type="text" value="blue submarine" />
</form>
使用:
$("#form1").serialize();
结果:
blog=blue+submarine
没法出现length=pipi
原因是length是js数组的属性关键字,出现冲突了,将name改为其他非冲突字符串即可

本文详细介绍了在使用Ajax时遇到的数据拼装问题,并提供了使用jQuery serialize方法解决的方法,同时讨论了如何处理特殊字符,避免数组属性关键字冲突。
225

被折叠的 条评论
为什么被折叠?



