免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Jquery將表單轉(zhuǎn)化成Json對(duì)象

大家知道Jquery中有serialize方法,可以將表單序列化為一個(gè)“&”連接的字符串,但卻沒有提供序列化為Json的方法。不過(guò),我們可以寫一個(gè)插件實(shí)現(xiàn)。

 

我在網(wǎng)上看到有人用替換的方法,先用serialize序列化后,將&替換成“:”、“‘”:

Js代碼
/**

* 重置form表單
* @param formId form的id
*/
function resetQuery(formId){
var fid = “#” + formId;
var str = $(fid).serialize();
//str= cardSelectDate=3&startdate=2012-02-01&enddate=2012-02-04
var ob= strToObj(str);
alert(ob.startdate);//2012-02-01
}

function strToObj(str){
str = str.replace(/&/g,”‘,’”);
str = str.replace(/=/g,”‘:’”);
str = “({‘”+str +”‘})”;
obj = eval(str);
return obj;
}

個(gè)人感覺這樣做有bug。

 

我的方法是,先用serializeArray序列化為數(shù)組,再封裝為Json對(duì)象。

 

 

下面是表單:

Html代碼

<form id=”myForm” action=”#”>
<input name=”name”/>
<input name=”age”/>
<input type=”submit”/>
</form>

Html代碼  
  1. <form id=”myForm” action=”#”>
  2.     <input name=”name”/>
  3.     <input name=”age”/>
  4.     <input type=”submit”/>
  5. </form>

 

Jquery插件代碼如下:

Js代碼

(function($){
$.fn.serializeJson=function(){
var serializeObj={};
$(this.serializeArray()).each(function(){
serializeObj[this.name]=this.value;
});
return serializeObj;
};
})(jQuery);

下面測(cè)試一下:$(“#myForm”).bind(“submit”,function(e){

Js代碼e.preventDefault();
console.log($(this).serializeJson());
});

輸入a,b提交,得到序列化結(jié)果

{age: “b”,name: “a”}

 

 

上面的插件,不能適用于有多個(gè)值的輸入控件,例如復(fù)選框、多選的select。下面,我將插件做進(jìn)一步的修改,讓其支持多選。代碼如下:

Js代碼

(function($){
$.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;
};
})(jQuery);

這里,我將多選的值封裝為一個(gè)數(shù)值來(lái)進(jìn)行處理。如果大家使用的時(shí)候需要將多選的值封裝為“,”連接的字符串或者其他形式,請(qǐng)自行修改相應(yīng)代碼。

 

測(cè)試如下:

表單:

 

Html代碼<form id=”myForm” action=”#”>
<input name=”name”/>
<input name=”age”/>
<select multiple=”multiple” name=”interest” size=”2″>
<option value =”interest1″>interest1</option>
<option value =”interest2″>interest2</option>
<option value=”interest3″>interest3</option>
<option value=”interest4″>interest4</option>
</select>
<input type=”checkbox” name=”vehicle” value=”Bike” /> I have a bike
<input type=”checkbox” name=”vehicle” value=”Car” /> I have a car
<input type=”submit”/>
</form>

測(cè)試結(jié)果:

{age: “aa”,interest: ["interest2", "interest4"],name: “dd”,vehicle:["Bike","Car"]}


來(lái)自:http://www.wufangbo.com/jquery-form-to-json/

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
jQuery 表單數(shù)據(jù)序列化為json格式
php – 在Dropdown Selection上,如何從Database填充完整的表單字段
[轉(zhuǎn)]jQuery serializeArray() 方法
基于jQuery的TreeGrid組件詳解
Ajax表單提交插件jquery form
ajax form表單提交 input file中的文件
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服