jQuery中的序列化表单(serialize)

昨天经站内一个朋友提醒,jQuery中有序列化表单的函数,不必在获取表单内元素的 时候逐个手写(原谅我如此无知。。)

今天早晨上班时查了下,顺手做个了小demo(serializeArray()),发现确实很好用,在此记录下——因为有个小小的坑。

很简单,

页面上定义好了 form 的ID之后, 就可以直接通过 $("#formsID").serializeArray() 来获取这个表单内的所有表单数据。

截图如下:

jQuery中的序列化表单(serialize)_第1张图片

控制台打印的结果:

jQuery中的序列化表单(serialize)_第2张图片

图中高亮部分也正是我想说的地方,serializeArray() 在获取表单内元素的时候,要保证表单控件有 name 属性的,否则会被忽略。

比如,我把上图中的ID为 txt1 和 txt3 的控件的 name 属性去掉,获取到的结果是这样的:

jQuery中的序列化表单(serialize)_第3张图片

jQuery中的序列化表单(serialize)_第4张图片

PS

经实测,在ASP.NET中,使用了母版页的情况下,由于母版页会自动生成一个form,这个时候页面上如果再自己手动添加一个form标签包裹要serialize的控件是不能正常工作的,serializeArray 的结果依然是空

如果把 $ 的选择器改为 母版页的话(例如,我这里自动生成的formID是: ctl01,就写: $("#ctl01").serializeArray())才可以,但是明显这样很蹩脚,

或者可以直接使用  $("form").serizlizeArray() 的方式,但是这样会把ASP.NET自动生成页面状态也包含进去,不知其他还有没有更好的方法,正在研究中。。。

你可能感兴趣的:(jquery,serializeArray)