使用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改为其他非冲突字符串即可