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自動生成頁面狀態也包含進去,不知其餘還有沒有更好的方法,正在研究中。。。

相關文章
相關標籤/搜索