jQuery中的序列化表单(serialize)

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

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

很简单, orm

页面上定义好了 form 的ID以后, 就能够直接经过 $("#formsID").serializeArray() 来获取这个表单内的全部表单数据。 form

截图以下: 表单

控制台打印的结果: 序列化

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

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

PS 数据

经实测,在ASP.NET中,使用了母版页的状况下,因为母版页会自动生成一个form,这个时候页面上若是再本身手动添加一个form标签包裹要serialize的控件是不能正常工做的,serializeArray 的结果依然是空 demo

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

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

相关文章
相关标签/搜索