jQuery序列化form表單數(shù)據(jù)為JSON對(duì)象的實(shí)現(xiàn)方法
jquery提供的serialize方法能夠?qū)崿F(xiàn)。
$("#searchForm").serialize();
但是,觀察輸出的信息,發(fā)現(xiàn)serialize()方法做的是將表單中的數(shù)據(jù)以htpp請(qǐng)求格式拼接成字符串。
serialize確實(shí)是能夠解決一般的提交數(shù)據(jù)。但是有時(shí)我們需要的是一個(gè)object對(duì)象,而不是字符串(比如jqgrid reload時(shí)設(shè)置查詢條件參數(shù),就需要object對(duì)象)。
方法如下:
(function(window, $) {
$.fn.serializeJson = function() {
var serializeObj = {};
var array = this.serializeArray();
var str = this.serialize();
$(array).each(
function() {
if (serializeObj[this.name]) {
if ($.isArray(serializeObj[this.name])) {
serializeObj[this.name].push(this.value);
} else {
serializeObj[this.name] = [
serializeObj[this.name], this.value ];
}
} else {
serializeObj[this.name] = this.value;
}
});
return serializeObj;
};
})(window, jQuery);
調(diào)用:
console.info($("#searchForm").serializeJson());
下面通過一段代碼看下jQuery序列化表單為JSON對(duì)象
<form id="myform">
<table>
<tr>
<td>姓名:</td>
<td> <input type="text" name="name" /> </td>
</tr>
<tr>
<td>性別:</td>
<td>
<input type="radio" name="sex" value="1"> 男
<input type="radio" name="sex" value="0"> 女
</td>
</tr>
<tr>
<td>年齡:</td>
<td>
<select name="age">
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
</select>
</td>
</tr>
<tr>
<td>愛好</td>
<td>
<input type="checkbox" value="basketball" name="hobby">籃球
<input type="checkbox" value="volleyball" name="hobby">排球
<input type="checkbox" value="football" name="hobby">足球
<input type="checkbox" value="earth" name="hobby">地球
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" id="ajaxBtn" value="提交" />
</td>
</tr>
</table>
</form>
<script type="text/javascript">
$(function() {
$("#ajaxBtn").click(function() {
var params = $("#myform").serializeObject(); //將表單序列化為JSON對(duì)象
console.info(params);
})
})
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [ o[this.name] ];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
}
</script>
上述serializeObject方法是將form序列化為JSON對(duì)象
總結(jié)
以上所述是小編給大家介紹的jQuery序列化form表單數(shù)據(jù)為JSON對(duì)象的實(shí)現(xiàn)方法 ,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
jQuery實(shí)現(xiàn)ajax無刷新分頁頁碼控件
這篇文章主要介紹了jQuery實(shí)現(xiàn)ajax無刷新分頁頁碼控件,需要的朋友可以參考下2017-02-02
jQuery實(shí)現(xiàn)表單動(dòng)態(tài)加減、ajax表單提交功能
本篇文章主要講jQuery實(shí)現(xiàn)表單動(dòng)態(tài)加減、ajax表單提交功能,本文主要分為兩部分: 一是頁面表單動(dòng)態(tài)加減實(shí)現(xiàn),二是復(fù)雜表單項(xiàng)提交到controller層。需要的朋友一起學(xué)習(xí)吧2018-06-06
jQuery內(nèi)部原理和實(shí)現(xiàn)方式淺析
這篇文章主要介紹了jQuery內(nèi)部原理和實(shí)現(xiàn)方式淺析,本文試圖從整體來闡述一下jQuery的內(nèi)部實(shí)現(xiàn),需要的朋友可以參考下2015-02-02
基于jquery實(shí)現(xiàn)百度新聞導(dǎo)航菜單滑動(dòng)動(dòng)畫
這篇文章主要介紹了基于jquery實(shí)現(xiàn)百度新聞導(dǎo)航菜單滑動(dòng)動(dòng)畫,感興趣的小伙伴們可以參考一下2016-03-03
jQuery實(shí)現(xiàn)table隔行換色和鼠標(biāo)經(jīng)過變色的兩種方法
這篇文章主要介紹jQuery實(shí)現(xiàn)table隔行換色和鼠標(biāo)經(jīng)過變色的兩種方法,需要的朋友可以參考下2014-06-06
jQuery Ajax 實(shí)現(xiàn)在html頁面實(shí)時(shí)顯示用戶登錄狀態(tài)
本文給大家分享jQuery Ajax 實(shí)現(xiàn)在html頁面實(shí)時(shí)顯示用戶登錄狀態(tài)的實(shí)現(xiàn)方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2016-12-12
jQuery插件-jRating評(píng)分插件源碼分析及使用方法
該插件被廣泛應(yīng)用于各種需要評(píng)分的頁面當(dāng)中,今天作為學(xué)習(xí),把源碼拿出來分析一下,順便學(xué)習(xí)其使用方法,需要了解的朋友可以研究下2012-12-12
懶加載實(shí)現(xiàn)的分頁&&網(wǎng)站footer自適應(yīng)
本文主要介紹了wap手機(jī)端懶加載分頁,web電腦端懶加載分頁以及web電腦端footer底部固定。具有很好的參考價(jià)值,下面就跟著小編一起來看下吧2016-12-12

