jQuery 表單序列化實(shí)例代碼
廢話不多說了,直接給大家貼代碼了,具體代碼如下所述:
$(function(){ $('#send').click(function(){ $.ajax({ type: "GET", url: "test.json", data: {username:$("#username").val(), password:$("#password").val()}, // 參數(shù)為對象 dataType: "json", success: function(data){ // code... } }); }); }); $(function(){ $('#send').click(function(){ var username = $("#username").val(); var password = $("#password").val(); $.ajax({ type: "GET", url: "test.json", data: "username"+username+"&password"+password, // 參數(shù)為字符串拼接,并用&連接 dataType: "json", success: function(data){ // code... } }); }); });
以上是一段常規(guī)的ajax請求代碼,其中分別列舉了data參數(shù)的兩種傳遞格式。
為了簡便ajax請求時(shí)的data參數(shù)獲取,jquery定義了幾個(gè)快速的方法。
1.serialize()
用法:var data = $("form").serialize();
返回值:將表單內(nèi)容序列化成一個(gè)字符串。
這樣在ajax提交表單數(shù)據(jù)時(shí),就不用一一列舉出每一個(gè)參數(shù)。只需將data參數(shù)設(shè)置為 $("form").serialize() 即可。
其核心方法是$.param(),用來對一個(gè)數(shù)組或?qū)ο蟀凑誯ey/value進(jìn)行序列化,
var obj = {first:"one",last:"two"};
var str = $.param(obj);
console.log(str); // first=one&last=two
另外,使用serialize有個(gè)好處是自帶中文編譯處理。所以,推薦使用serialize。
2.serializeArray()
用法:var jsonData = $("form").serializeArray();
返回值:將頁面表單序列化成一個(gè)JSON結(jié)構(gòu)(鍵值對)的對象。
比如,[{"name":"lihui", "age":"20"},{...}] 獲取數(shù)據(jù)為 jsonData[index].name
綜上:在使用ajax提交表單數(shù)據(jù)時(shí),data參數(shù)設(shè)置為$(form).serialize()或$(form).serializeArray()都可以。另外有些細(xì)節(jié)建議參考w3c。
最后補(bǔ)充一個(gè)完整實(shí)例。
html:
<html> <head> <meta charset="utf-8"> </head> <body> <form id="demo"> <input type="text" value="demo1" name="demo1"> <input type="text" value="demo2" name="demo2"> <input type="text" value="demo3" name="demo3"> <input type="submit" value="提交" id="submit"> </form> </body> </html>
JavaScript:
<script> // 別忘了引入jquery !!! $(function(){ $("#submit").click(function(){ // var data = $("form").serializeArray(); var data = $("form").serialize(); $.ajax({ type:"GET", url:"1.php", data:data, dataType:"json", success:function(data){ console.log(data); }, error:function(xhr,error){ console.log(error); } }) }) }) </script>
php 提醒:需要配置php環(huán)境并開啟服務(wù)器
<?php echo json_encode($_GET); ?>
以上所述是小編給大家介紹的jQuery 表單序列化實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時(shí)回復(fù)大家的!
- jQuery使用serialize()表單序列化時(shí)出現(xiàn)中文亂碼問題的解決辦法
- jQuery實(shí)現(xiàn)form表單元素序列化為json對象的方法
- JQuery中serialize() 序列化
- jquery序列化表單去除指定元素示例代碼
- jquery序列化form表單使用ajax提交后處理返回的json數(shù)據(jù)
- jQuery中驗(yàn)證表單提交方式及序列化表單內(nèi)容的實(shí)現(xiàn)
- jquery將一個(gè)表單序列化為一個(gè)對象的方法
- jQuery-serialize()輸出序列化form表單值的方法
- 基于jQuery的一個(gè)擴(kuò)展form序列化到j(luò)son對象
相關(guān)文章
基于jquery實(shí)現(xiàn)的服務(wù)器驗(yàn)證控件的啟用和禁用代碼
用戶點(diǎn)擊下一步時(shí),不對Display=none的新增區(qū)域表單進(jìn)行驗(yàn)證,需要在用戶點(diǎn)擊“取消增加時(shí)”,禁用服務(wù)器驗(yàn)證控件。反之,啟用服務(wù)器驗(yàn)證控件。2010-04-04jquery 模擬類搜索框自動(dòng)完成搜索提示功能(改進(jìn))
改進(jìn)版,支持多個(gè)輸入框!前面因?yàn)槎鄠€(gè)輸入框信息不好保存所以只能支持一個(gè),現(xiàn)在用輸入框的alt屬性來保存修改前的內(nèi)容,所以能支持多個(gè)輸入框了.初步測試沒發(fā)現(xiàn)問題,歡迎大家一起測試改進(jìn)!!!2010-05-05jQuery實(shí)現(xiàn)的多張圖無縫滾動(dòng)效果【測試可用】
這篇文章主要介紹了jQuery實(shí)現(xiàn)的多張圖無縫滾動(dòng)效果,可實(shí)現(xiàn)自定義向左或向右滾動(dòng)的功能,涉及jQuery結(jié)合時(shí)間函數(shù)動(dòng)態(tài)操作頁面元素屬性的相關(guān)技巧,需要的朋友可以參考下2016-09-09jQuery的三種bind/One/Live/On事件綁定使用方法
jQuery是 一款優(yōu)秀的JavaScript框架,在舊版里主要用bind()方法,在新版里又多了兩種One(),Live(),下面介紹這幾種方法的使用2017-02-02使用jquery實(shí)現(xiàn)div的tab切換實(shí)例代碼
以前使用js代碼來寫的簡單效果現(xiàn)在用jQ來寫,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈2013-05-05jquery操作HTML5 的data-*的用法實(shí)例分享
從jQuery 1.4.3起, HTML 5 data- 屬性 將自動(dòng)被引用到j(luò)Query的數(shù)據(jù)對象中。也就是說雖然 data-* 是在html5 中的元素, 但是如果使用 jquery 1.4.3庫以上的.還是可以 在非HTML5的頁面或?yàn)g覽器里, 仍然可以使用.data(obj)方法來操作"data-*" 數(shù)據(jù).2014-08-08jQuery實(shí)現(xiàn)調(diào)整表格單列順序完整實(shí)例
這篇文章主要介紹了jQuery實(shí)現(xiàn)調(diào)整表格單列順序的方法,結(jié)合完整實(shí)例形式分析了jQuery響應(yīng)鼠標(biāo)事件及動(dòng)態(tài)操作頁面元素的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06jQuery滾動(dòng)插件scrollable.js用法分析
這篇文章主要介紹了jQuery滾動(dòng)插件scrollable.js用法,簡單分析了scrollable.js的功能、方法及相關(guān)使用技巧,需要的朋友可以參考下2017-05-05