昨天經站內一個朋友提醒,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自動生成頁面狀態也包含進去,不知其餘還有沒有更好的方法,正在研究中。。。