隨筆-124  評論-49  文章-56  trackbacks-0
          //--------------------------------使用jquery--------------------------------------------
          //
          定義用戶名校驗的方法
          function verify(){
              
          //首先測試一下頁面的按鈕按下,可以調用這個方法
              //使用javascript的alert方法,顯示一個探出提示框
              //alert("按鈕被點擊了!!!");

              
          //1.獲取文本框中的內容
              //document.getElementById("userName");  dom的方式
              //Jquery的查找節點的方式,參數中#加上id屬性值可以找到一個節點。
              //jquery的方法返回的都是jquery的對象,可以繼續在上面執行其他的jquery方法
              var jqueryObj = $("#userName");
              
          //獲取節點的值
              var userName = jqueryObj.val();
              
          //alert(userName);

              
          //2.將文本框中的數據發送給服務器段的servelt
              //使用jquery的XMLHTTPrequest對象get請求的封裝
              $.get("AJAXServer?name=" + userName,null,callback);


          }


          //回調函數
          function callback(data) {
          //    alert("服務器段的數據回來了!!");
              //3.接收服務器端返回的數據
          //
              alert(data);
              //4.將服務器段返回的數據動態的顯示在頁面上
              //找到保存結果信息的節點
              var resultObj = $("#result");
              
          //動態的改變頁面中div節點中的內容
              resultObj.html(data);
              alert(
          "");
          }


          //以上簡化如下
          function verify() {
              $.get(
          "AJAXServer?name="+$("#name").val(),null,function(data){
              $(
          "#result").html(data);
              }
          );
          }
          );
          }


          //---------------------使用XMLHTTPRequest對象來進行AJAX的異步數據交互-----------------------------------
          var xmlhttp;
          function verify() {
              
          //0。使用dom的方式獲取文本框中的值
              //document.getElementById("userName")是dom中獲取元素節點的一種方法,一個元素節點對應HTML頁面中的一個標簽,如果<input>
              //。value可以獲取一個元素節點的value屬性值
              var userName = document.getElementById("userName").value;

              
          //1.創建XMLHttpRequest對象
              //這是XMLHttpReuquest對象無部使用中最復雜的一步
              //需要針對IE和其他類型的瀏覽器建立這個對象的不同方式寫不同的代碼

              
          if (window.XMLHttpRequest) {
                  
          //針對FireFox,Mozillar,Opera,Safari,IE7,IE8
                  xmlhttp = new XMLHttpRequest();
                  
          //針對某些特定版本的mozillar瀏覽器的BUG進行修正
                  if (xmlhttp.overrideMimeType) {
                      xmlhttp.overrideMimeType(
          "text/xml");
                  }

              }
           else if (window.ActiveXObject) {
                   
          //針對IE6,IE5.5,IE5
                  //兩個可以用于創建XMLHTTPRequest對象的控件名稱,保存在一個js的數組中
                  //排在前面的版本較新
                  var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
                  
          for (var i = 0; i < activexName.length; i++{
                      
          try{
                          
          //取出一個控件名進行創建,如果創建成功就終止循環
                          //如果創建失敗,回拋出異常,然后可以繼續循環,繼續嘗試創建
                          xmlhttp = new ActiveXObject(activexName[i]);
                          
          break;
                      }
           catch(e){
                      }

                  }

              }

              
          //確認XMLHTtpRequest對象創建成功
              if (!xmlhttp) {
                  alert(
          "XMLHttpRequest對象創建失敗!!");
                  
          return;
              }
           else {
                  alert(xmlhttp.readyState);
              }


              
          //2.注冊回調函數
              //注冊回調函數時,之需要函數名,不要加括號
              //我們需要將函數名注冊,如果加上括號,就會把函數的返回值注冊上,這是錯誤的
              xmlhttp.onreadystatechange = callback;

              
          //3。設置連接信息
              //第一個參數表示http的請求方式,支持所有http的請求方式,主要使用get和post
              //第二個參數表示請求的url地址,get方式請求的參數也在url中
              //第三個參數表示采用異步還是同步方式交互,true表示異步
              xmlhttp.open("GET","AJAXServer?name="+ userName,true);

              
          //POST方式請求的代碼
              //xmlhttp.open("POST","AJAXServer",true);
              //POST方式需要自己設置http的請求頭
              //xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
              //POST方式發送數據
              //xmlhttp.send("name=" + userName);

              
          //4.發送數據,開始和服務器端進行交互
              //同步方式下,send這句話會在服務器段數據回來后才執行完
              //異步方式下,send這句話會立即完成執行
              xmlhttp.send(null);
          }


          //回調函數
          function callback() {
              
          //alert(xmlhttp.readyState);
              //5。接收響應數據
              //判斷對象的狀態是交互完成
              if (xmlhttp.readyState == 4{
                  
          //判斷http的交互是否成功
                  if (xmlhttp.status == 200{
                      
          //獲取服務漆器端返回的數據
                      //獲取服務器段輸出的純文本數據
                      var responseText = xmlhttp.responseText;
                      
          //將數據顯示在頁面上
                      //通過dom的方式找到div標簽所對應的元素節點
                      var divNode = document.getElementById("result");
                      
          //設置元素節點中的html內容
                      divNode.innerHTML = responseText;
                  }
           else {
                      alert(
          "出錯了!!!");
                  }

              }

          }



          //-----------------xml----使用XMLHTTPRequest對象來進行AJAX的異步數據交互---xml--------------------------------
          //
          自已寫的返回xml
          httpServletResponse.setContentType("text/xml;charset=utf-8");
          StringBuilder builder 
          = new StringBuilder();
          builder.append(
          "<message>");
          //使用responseXML的方式來接收XML數據對象的DOM對象
                      var domObj = xmlhttp.responseXML;
                      
          if (domObj) {
                          
          //<message>123123123</message>
                          //dom中利用getElementsByTagName可以根據標簽名來獲取元素節點,返回的是一個數組
                          var messageNodes = domObj.getElementsByTagName("message");
                          
          if (messageNodes.length > 0{
                              
          //獲取message節點中的文本內容
                              //message標簽中的文本在dom中是message標簽所對應的元素節點的字節點,firstChild可以獲取到當前節點的第一個子節點
                              //通過以下方式就可以獲取到文本內容所對應的節點
                              var textNode = messageNodes[0].firstChild;
                              
          //對于文本節點來說,可以通過nodeValue的方式返回文本節點的文本內容
                              var responseMessage = textNode.nodeValue;



                              
          //將數據顯示在頁面上
                              //通過dom的方式找到div標簽所對應的元素節點
                              var divNode = document.getElementById("result");
                              
          //設置元素節點中的html內容
                              divNode.innerHTML = responseMessage;
                          }
           else {
                              alert(
          "XML數據格式錯誤,原始文本內容為:" + xmlhttp.responseText);
                          }

                      }
           else {
                          alert(
          "XML數據格式錯誤,原始文本內容為:" + xmlhttp.responseText);
                      }


          //使用jquery返回xml            
          function verify(){
              
          //首先測試一下頁面的按鈕按下,可以調用這個方法
              //使用javascript的alert方法,顯示一個探出提示框
              //alert("按鈕被點擊了!!!");

              
          //1.獲取文本框中的內容
              //document.getElementById("userName");  dom的方式
              //Jquery的查找節點的方式,參數中#加上id屬性值可以找到一個節點。
              //jquery的方法返回的都是jquery的對象,可以繼續在上面執行其他的jquery方法
              var jqueryObj = $("#userName");
              
          //獲取節點的值
              var userName = jqueryObj.val();
              
          //alert(userName);

              
          //2.將文本框中的數據發送給服務器段的servelt
              //javascript當中,一個簡單的對象的定義方法
              var obj = {name:"123",age:20};
              
          //使用jquery的XMLHTTPrequest對象get請求的封裝
              $.ajax({
                  type: 
          "POST",            //http請求方式
                  url: "AJAXXMLServer",    //服務器段url地址
                  data: "name=" + userName,           //發送給服務器段的數據
                  dataType: "xml",  //告訴JQuery返回的數據格式
                  success: callback  //定義交互完成,并且服務器正確返回數據時調用的回調函數
              }
          );


          }


          //回調函數
          function callback(data) {
          //    alert("服務器段的數據回來了!!");
              //3.接收服務器端返回的數據
              //需要將data這個dom對象中的數據解析出來
              //首先需要將dom的對象轉換成JQuery的對象
              var jqueryObj = $(data);
              
          //獲取message節點
              var message = jqueryObj.children();
              
          //獲取文本內容
              var text = message.text();
              
          //4.將服務器段返回的數據動態的顯示在頁面上
              //找到保存結果信息的節點
              var resultObj = $("#result");
              
          //動態的改變頁面中div節點中的內容
              resultObj.html(text);
              alert(
          "");
          }


          //--------------------------------中文亂碼問題--------------------------------------------
          //
          1 頁在端發出的數據作一次encodeURI,服務器端使用new String(old.getBytes("iso8859-1","UTF-8"))
          //
          頁面代碼修改
          var url="AJAXServer?name="+encodeURI($("#userName").val());
          //服務器servlet代碼修改
          String old = httpServletRequest.getParamenter("name");
          String name 
          = new String(old.getBytes("iso8859-1"),"UTF-8");

          //2 頁在端發出的數據作兩次encodeURI,服務器端使用URLDecoder.decode(old,"UTF-8")
          //
          頁面代碼修改
          var url="AJAXServer?name="+encodeURI(encodeURI($("#userName").val()));
          //服務器servlet代碼修改
          String old = httpServletRequest.getParamenter("name");
          String name 
          = URLDecoder.decode(old,"UTF-8");


          //--------------------------------jquery隱藏/顯示浮動窗口的方法--------------------------------------------
          //
          顯示浮動窗口的方法
          function showwin() {
              
          //lert("準備顯示彈出窗口啦!!!");
              //1.找到窗口對應的div節點
              var winNode = $("#win");
              
          //2.讓div對應的窗口顯示出來
              //方法1,修改節點的css值,讓窗口顯示出來
              //winNode.css("display","block");
              //方法2,利用Jqeury的show方法
              //winNode.show("slow");
              //方法3,利用JQuery的fadeIn方法
              winNode.fadeIn("slow");
          }


          //隱藏窗口的方法
          function hide() {
              
          //1.找到窗口對應的節點
              var winNode = $("#win");
              
          //2.將窗口隱藏起來
              //方法1,修改css
              //winNode.css("display","none");
              //方法2,利用hide方法
              //winNode.hide("slow");
              //方法3,利用fadeOut方法
              winNode.fadeOut("slow");
          }

          //--------------------------------jquery局部刷新的方法--------------------------------------------
          //
          需要點擊主菜單的按鈕時,對應的子菜單可以顯示,再次點擊子菜單則隱藏
          頁面
          <ul>
              
          <a href="#">我是菜單1</a>
              
          <li><a href="#" id="JQueryAutoComplete.html">我是子菜單1</a></li>
              
          <li><a href="#" id="JQueryAutoComplete.html">我是子菜單2</a></li>
          </ul>
          //需要編寫代碼,在頁面裝載時,給所有的主菜單添加onclick的事件
          //
          保證主菜單點擊時可以顯示或隱藏子菜單
          //
          注冊頁面裝載時執行的方法
          $(document).ready(function() {
              
          //這里需要首先找到所有的主菜單
              //然后給所有的主菜單注冊點擊事件
              //找到ul中的節點
              var as = $("ul > a");
              as.click(
          function() {
                  
          //這里需要找到當前ul中的li,然后讓li顯示出來
                  //獲取當前被點擊的a節點
                  var aNode = $(this);
                  
          //找到當前a節點的所有li兄弟字節點
                  var lis = aNode.nextAll("li");
                  
          //讓子節點顯示或隱藏
                  lis.toggle("show");
              }
          );
              $(
          "li>a").click(function(){
              $(
          "#content").load($(this).attr("id"));
              }
          );
          }
          );
          posted on 2009-11-03 10:12 junly 閱讀(641) 評論(1)  編輯  收藏 所屬分類: ajax/jquery/js

          評論:
          # re: ajax基礎-jquery 2010-03-01 02:18 | 動漫360
          很好的內容!謝謝分享!  回復  更多評論
            
          主站蜘蛛池模板: 苍梧县| 亚东县| 教育| 同江市| 沐川县| 莱芜市| 兴国县| 华阴市| 新乡县| 疏附县| 宁津县| 梁山县| 长丰县| 洛扎县| 通海县| 东乡| 华蓥市| 富蕴县| 什邡市| 新田县| 蕲春县| 霍林郭勒市| 铜梁县| 福鼎市| 策勒县| 富源县| 喀喇沁旗| 伊通| 五大连池市| 临安市| 荣昌县| 射阳县| 花垣县| 临沧市| 葫芦岛市| 沁阳市| 吴川市| 凭祥市| 保亭| 托克逊县| 巨鹿县|