上周寫了一些代碼,涉及到jquery異步請求,這里歸納總結下,希望對剛接觸編程的同學有幫助。
主要習慣使用 art.dialog 框架,非常好用,在異步請求上,它提供了很多簡便的方法。
加載使用art.dialog前,需要在頁面代碼上引入
1 <link href="/js/artDialog/css/blue.css" type="text/css" rel="stylesheet" /> 2 <script type="text/javascript" charset="utf-8" src="/js/artDialog/artDialog.js?skin=default"></script>
在jquery1.9.1版本或以上,不支持live()事件,用
1 $(document).on("click","td #id",function(){ 2 3 })
替代live事件,響應動態顯示的標簽。
獲得需要的數據:
ajax異步請求前,需要獲取參數的值。主要有兩種方式可以獲得頁面傳過來的值。
不管是響應button <a> 還是其他,需要在相應標簽內添加傳來的參數值,如:
1 <a id="ajaxQuery" name="xxx" age="18" >ajaxquery</a>
它的響應事件獲得參數方法:
$(document).on("click", "#ajaxQuery" , function(){
var name = $(this).attr('name');
var age = $(this).attr('age'); //這兩種方式是通過獲取屬性值實現
var value = $(this).val(); //通過獲取該標簽的value值來實現
})
由於ajax請求一般是異步請求,所以在執行.get類的方法后,這類方法的數據是無法再傳給后面的函數調用。
彈框顯示:
一般調用art.dialog的基本步驟:
1 art.dialog(){ 2 lock: true, //屏鎖 3 background:'#333333', //背景色 4 opacity: 0.6, //透明度 5 title: '標題', 6 id: '', 7 content: '' //彈框html腳本。 8 ok:function() { 9 10 11 } 12 }
在ok : function() {}中寫ajax請求腳本,
1 $.getJSON('url',function( data ) { 2 //url為請求的url,可直接在url后面接參數和值,傳參過去 3 });
或者
1 $.getJSON( 'URL' ,data,function(data) { 2 3 })
data為傳遞參數。
請求完成后,依據返回來的參數判斷是否響應成功,若成功,可返回指定頁面
1 if ( data.code = 'true' ) { 2 window.location.href = 'url'; 3 }
基本上使用art.dialog整個流程到這里就結束了,接下來,具體談下這幾種ajax請求,和多選項時提交的情況。
多項選,selected情況的多選項情況:
var valueArr = []; $("#id option:selected").each(function(){ var value = $(this).val(); valueArr.push( value ); }
checked多選項時情況:
1 var valueArr = []; 2 $("#id td .checked").each( function() { 3 var value = $(this).val(); 4 valueArr.push( value ); 5 }
ajax請求方法:
1 $.post("url",{'data':valueArr,'data2': value} ,function( data ) { 2 3 },json);
應對form表單的提交,這里有一個更優的方法:
1 var FormValue = $("#FormId").serialize(); 2 $.get ( "url",FormValue,function(data){ 3 data = eval("(" + data + ")"); //json decode 4 if(data.code === 1001 ) { 5 window.location.href = '/url'; 6 } 7 else { 8 return false; 9 } 10 });
其他ajax當然還有 $.ajax $.getAjax等,也可以直接 用jquery 的submit事件實現表單提交。