本文導讀:在jQuery中,當我們使用ajax時,常常需要拼裝 input數據以鍵值對(Key/Value)的形式發送到服務器,用JQuery的serialize方法可以輕松的完成這個工作,使用這個方法可以將 表單序列化為鍵值對(key1=value1&key2=value2…)后提交。下面介紹JQuery中serialize()的用法:
語法:
$('form').serialize()
詳細說明
1、.serialize() 方法創建以標准 URL 編碼表示的文本字符串。它的操作對象是代表表單元素集合的 jQuery 對象。
2、.serialize() 方法可以操作已選取個別表單元素的 jQuery 對象,比如 <input>, <textarea> 以及 <select>。不過,選擇 <form> 標簽本身進行序列化一般更容易些
3、只會將”成功的控件“序列化為字符串。如果不使用按鈕來提交表單,則不對提交按鈕的值序列化。如果要表單元素的值包含到序列字符串中,元素必須使用 name 屬性。
4、form里面的name不能夠用 Js、jquery里的關鍵字。
首先有一個form表單:
<form id="form1"> <input name="name" type="text" value="小明" /> <input name="sex" type="text" value="男" />
<input type="button" id="submit" value="提交" /> </form>
通過ajax將表單內容傳到后台一般是
$.ajax({ type: "POST", data:"name="+$("input[name='name']").val()+"&sex="+$("input[name='name']").val(), url: "你的方法名", dataType: "text", cache: false, success: function(data){ if(1==data){ alert("刪除失敗!"); return; }else{ location.reload(); } } });
這種拼接的data非常的麻煩,那么serialize()就很好的解決這個問題了,
$.ajax({ type: "POST", data:$("#form1").serialize(), //用form的id去找對象 ,也可以使用$('form').serialize(), url: "你的方法名", dataType: "text", // cache: false, success: function(data){ if(data==1){ alert("刪除失敗!"); }else{ //其他 } } });
這樣就把form表單序列化過去了,
傳過去會是 name=小明&sex=男 ;
接下來就可以在后台 繼續處理了。
注:本文由王智磊(王大寶兒)整理編寫,也參考借鑒了很多大神的筆記,分享代碼,分享成功,歡迎各位交流和轉載,轉載請注明出處(博客園:王大寶兒)http://www.cnblogs.com/wangzhilei/