日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

JQuery中serialize()、serializeArray()和param()方法

發布時間:2025/7/14 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JQuery中serialize()、serializeArray()和param()方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

與JQuery中其他方法一樣,serialize()方法也是作用于一個JQuery對象,它能夠將DOM元素內容序列化為字符串,用于ajax請求。通過使用serialize()方法,可以提交本頁面的所有域,代碼如下:

$("#send").click(function(){??$.get("get1.jsp",?$("#form1").serialize(),?function(data,?textStatus)??$("#resText").html(data);??});?? });

當單擊“提交”按鈕后,所有屬于form1的表單元素都能提交到后臺,即使在表單中再增加字段,腳本仍然能夠使用,并且不需要做其他多余工作。

用字符串方式時,需要注意對字符編碼(中文問題),如果不希望編碼帶來麻煩,可以使用serialize()方法,它會自動編碼。

因為serialize()方法作用于JQuery對象,所以不光只有表單能使用它,其他選擇器選取的元素也都能使用它,如以下JQuery代碼:

$(":checkbox,:radio").serialize();

把復選框和單選框的值序列化為字符串形式,只會將選中的值序列化。

?

在JQuery中還有一個與serialize()類似的方法--serializeArray(),該方法不是返回字符串,而是將DOM元素序列化后,返回JSON格式的數據。JQuery代碼如下:

var?fields?=?$(":checkbox,:radio").serializeArray(); console.log(fields);????//用FireBug輸出


$.param()方法是serialize()方法的核心,用來對一個數組或對象按照key/value進行序列化。

比如將一個普通的對象序列化:

var?obj?=?{a:1,b:2,c:3}; var?k?=?$.param(obj); alert(k);????//輸出a=1&b=2&c=3

基于serializeArray()的擴展jquery的serializeObject()方法:

//注意該方法需要傳入一個jqury的form表單,例如:$("#myform") var?sy?=?sy?||?{}; sy.serializeObject?=?function(form)?{var?o?=?{};$.each(form.serializeArray(),?function(index)?{/*如果表單項的值非空,才進行序列化操作*/if?(this['value']?!=?undefined?&&?this['value'].length?>?0)?{if?(o[this['name']])?{o[this['name']]?=?o[this['name']]?+?","?+?this['value'];}?else?{o[this['name']]?=?this['value'];}}});return?o; };

設有form中有username,password兩個input,看效果


$("form").serialize() 顯示為:

?username=""& password="";

$("form").serializeArray() 顯示為:

[{"name":"username","value":""},{"name":"password","value":""}];

$("form").serializeObject() 顯示為:
{"username":"","password":""};

serializeObject僅適用于name值不重復的情況,若name值重復,則取第一個

用法:一般在做jquery的ajax請求的時候,使用serialize()方法,但是在easyui的datagrid的load()和reload()方法中,需要傳遞的是一個對象,例如:$("#datagrid").datagrid("load",{name:"libai",address:"hubei"});如果我們不想拼接手寫去一個個拼接需要傳遞的請求,參數,那么可以使用reliableObject()函數,來自動生成一個object對象

轉載于:https://my.oschina.net/u/2331760/blog/424037

總結

以上是生活随笔為你收集整理的JQuery中serialize()、serializeArray()和param()方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。