成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

5種方法教你用jQuery重寫表單驗證

開發 開發工具 前端
這里給大家介紹使用jQuery的load()方法、$.get()、$.post()、$.ajax()和表單插件(Form Plugin)5種方法分別重寫“表單驗證”的實例,并且進一步說明中文亂碼的問題。

前面我們曾介紹過使用jQuery技巧來提高代碼質量,因為jQuery非常容易上手并使用簡單。重寫表單驗證是程序員們經常做的事情,使用jQuery我們有五種方法可以選擇,同時也能夠解決亂碼的問題。

首先,對編碼知識進行簡要的說明,請務必理解后再看下面的代碼。發送中文字符請求時,如果使用get方式,運行正常;而使用post方法則會出現亂碼。這是由于異步對象XMLHttpRequest在處理返回的responseText的時候,是按UTF-8編碼進行解碼的。

如果你原來的網頁編碼是gb2312的話,當然會發生編碼的沖突了;如果你原來的網頁編碼是utf-8,那么就不會出現中文亂碼的問題了。

出現了中文亂碼該怎么辦呢?通常的解決辦法是用escape()對發送的數據進行編碼,然后在返回的responseText上再用unescape()進行解碼。然而在JavaScript編程中通常不推薦使用escape()和unescape(),而推薦使用encodeURI()和decodeURI()。請看下面的“表單驗證實例”,或許對你學習編碼知識有一定的幫助。

***、jQuery的load(url,[data],[callback])方法

語法說明:url為異步請求的地址,data用來向服務器傳送請求數據,為可選參數。一旦data參數啟用,整個請求過程將以post的方式進行,否則默認為get方式。如果希望在get方式下也傳遞數據,可以在url地址后面用類似“dataname1=data1&dataName2=data2”的方法。

callback為Ajax加載成功后運行的回調函數。另外使用load()方法返回的數據,不再需要考慮是文本還是XML,jQuery都會自動進行處理。好了,下面馬上使用load()方法實現“自動表單驗證”實例。首先是,html框架,5個例子都是一樣的,如下:

  1. <form>   
  2. 用戶昵稱:<input type="text" onblur="startCheck(this)" name="User" id="User"><span id="UserResult"></span><br />   
  3. 輸入密碼:<input type="password" name="passwd1"><br />   
  4. 確認密碼:</td><td><input type="password" name="passwd2"><br />   
  5. <input type="submit" value="注冊" class="button">   
  6. <input type="reset" value="重置" class="button">   
  7. </form>  

必要說明:

1、onblur="startCheck(this)" 這是JavaScript代碼(簡稱js) ,意思是text文本框失去焦點時觸發自定義函數startCheck(),this是指代text文本框的值。

2、<span id="UserResult"></span>用來存放異步對象返回的結果。

  1. jQuery代碼如下:  
  2.  
  3. <script language="javascript" src="jquery.min.js"></script>   
  4. <script language="javascript">   
  5. function startCheck(oInput){   
  6.     //首先判斷是否有輸入,沒有輸入直接返回,并提示   
  7.     if(!oInput.value){   
  8.         oInput.focus(); //聚焦到用戶名的輸入框   
  9.         document.getElementById("UserResult").innerHTML = "User cannot be empty.";   
  10.         return;   
  11.     }   
  12.     oInput=$.trim(oInput.value); //使用jQuery的$.trim()方法過濾左右空格   
  13.     var sUrl = "action.asp?user=" + oInput;   
  14.     sUrl=encodeURI(sUrl); //使用encodeURI()編碼,解決中文亂碼問題   
  15.     $("#UserResult").load(sUrl,function(data){   
  16.         $("#UserResult").html(decodeURI(data)); //使用decodeURI()解碼   
  17.         }   
  18.     );   
  19. }   
  20. </script>  

必要說明:

1、使用jQuery時,都必須加載jquery.min.js文件,可以到http://jquery.com/官網下載***的版本。

2、判斷是否有輸入時,用的全是JavaScript語法。

3、對傳遞給“處理頁”的參數進行encodeURI編碼,以解決中文亂碼問題。

4、load()中的function函數是為了對返回結果進行decodeURI解碼,以解決中文亂碼問題。

5、對$.trim()、$("#UserResult")、html等jQuery語法不理解的,可以參考jQuery中文手冊。本站提供下載。

  1. action.asp處理頁代碼如下:  
  2.  
  3. <%   
  4. if(Request("user")="eko") then   
  5. Response.Write "Sorry, " & Request("user") & " already exists."   
  6. else   
  7. Response.Write Request("user")&" is ok."   
  8. end if   
  9. %> 

必要說明:

1、action.asp處理頁的編碼是GB2312,如果把"Sorry..already exists..is ik"等英文改為中文,請看下面的說明。

2、使用post方法會出現亂碼,這是由于異步對象XMLHttpRequest在處理返回的responseText的時候,是按UTF-8編碼進行解碼的。

3、所以post方式的話,必須把action.asp頁另存為時,第三項的編碼由 ANST 改為 UTF-8 (請務必記住!!)。

#p#

第二、使用$.get(url,[data],[callback])和$.post(url,[data],[callback])方法

語法說明:盡管load()方法可以實現get和post兩種方式,但很多時候開發者還是希望能夠指定發送方式,并且處理服務器返回的值。jQuery提供了$.get()和$.post()兩種方法,分別針對這兩種請求方式。

其中,url為請求地址,data為請求數據的列表,是可選參數,callback為請求成功后的回調函數,該函數接受兩個參數,***個參數為服務器返回的數據,第二個參數為服務器的狀態,是可選參數。$.post()中的type為請求數據的類型,可以是html、xml、json等。 “可自動校驗表單實例”的jQuery代碼如下,html如上所述。

  1. <script language="javascript" src="jquery.min.js"></script>   
  2. <script language="javascript">   
  3. function createQueryString(){   
  4.     var username=$("#User").val();   
  5.     //組合成對象的形式   
  6.     var queryString={user:username};   
  7.     return queryString;   
  8.     }   
  9. function startCheck(oInput){   
  10.     //首先判斷是否有輸入,沒有輸入直接返回,并提示   
  11.     if(!oInput.value){   
  12.         oInput.focus(); //聚焦到用戶名的輸入框   
  13.         document.getElementById("UserResult").innerHTML = "User cannot be empty.";   
  14.         return;   
  15.     }   
  16.     oInput=$.trim(oInput.value); //使用jQuery的$.trim()方法過濾左右空格   
  17.     $.get("action.asp",createQueryString(),   
  18.         function(data){   
  19.             $("#UserResult").html(data);   
  20.     });   
  21. }   
  22. </script> 

必要說明:

1、對$.trim()、$("#UserResult")、html、val()等jQuery語法不理解的,可以參考jQuery中文手冊。本站提供下載。

2、自定義函數createQueryString(),是對傳入“處理頁”的參數,進行處理。一種常規的方法。

3、因為是以get方式處理,說明這里不需要進行編碼和解碼。下面以post方式處理,則需要編碼和解碼了,代碼如下

  1. function createQueryString(){   
  2.     //使用encodeURI()編碼解決中文亂碼問題   
  3.     var username=encodeURI($("#User").val());   
  4.     //組合成對象的形式   
  5.     var queryString={user:username};   
  6.     return queryString;   
  7.     }   
  8. function startCheck(oInput){   
  9.     //首先判斷是否有輸入,沒有輸入直接返回,并提示   
  10.     if(!oInput.value){   
  11.         oInput.focus(); //聚焦到用戶名的輸入框   
  12.         document.getElementById("UserResult").innerHTML = "User cannot be empty.";   
  13.         return;   
  14.     }   
  15.     oInput=$.trim(oInput.value); //使用jQuery的$.trim()方法過濾左右空格   
  16.     $.post("action.asp",createQueryString(),   
  17.         function(data){   
  18.             $("#UserResult").html(decodeURI(data));   
  19.     });   
  20. }   
  21. </script> 

#p#

第三、使用$.ajax()方法

語法說明:盡管load()、$.get()和$.post()非常方便實用,但卻不能控制錯誤和很多交互的細節,可以說這3種方法對Ajax的可控性較差。jQuery提供了一個強大的函數$.ajax(options)來設置Ajax訪問服務器的各個細節,它的語法十分簡單,就是設置Ajax的各個選項,然后指定相應的值。“可自動校驗表單”實例代碼如下:

  1. <script language="javascript" src="jquery.min.js"></script>   
  2. <script language="javascript">   
  3. function createQueryString(){   
  4.     //使用encodeURI()編碼解決中文亂碼問題   
  5.     var username=encodeURI($("#User").val());   
  6.     //組合成對象的形式   
  7.     var queryString={user:username};   
  8.     return queryString;   
  9. }   
  10. function startCheck(oInput){   
  11.     //首先判斷是否有輸入,沒有輸入直接返回,并提示   
  12.     if(!oInput.value){   
  13.     oInput.focus(); //聚焦到用戶名的輸入框   
  14.     document.getElementById("UserResult").innerHTML = "User cannot be empty.";   
  15.     return;   
  16.     }   
  17.     oInput=$.trim(oInput.value); //使用jQuery的$.trim()方法過濾左右空格   
  18.     $.ajax({   
  19.         type: "GET",   
  20.         url: "action.asp",   
  21.         data: createQueryString(),   
  22.         success: function(data){   
  23.             $("#UserResult").html(decodeURI(data));   
  24.         }   
  25.     });   
  26. }   
  27. </script> 

必要說明:

1、代碼基本同上,只是$.ajax(options)稍有不同,對于其參數不理解可以參考jQuery中文手冊。

2、給個建議,無論是get方式還是post方式,都習慣進行編碼,以防出現中文亂碼的問題。

3、再強調一下,無論使用哪種程序,如果遇到問題了,都可以參考相關的手冊說明,這是建站所必需的。

上面的實例使用了jQuery的load()方法、$.get()、$.post()、$.ajax()的4種方法,都要考慮中文亂碼的問題,下面推薦一個方法,進一步簡化jQuery代碼,呵呵。

#p#

第四、表單插件

表單插件(Form Plugin)是一款功能非常強大的插件,在jQuery官方網站上目前為4***推薦,下載后為jquery.form.js文件。該插件提供獲取表單數據、重置表單項目、使用Ajax提交數據等一系列功能,深受開發人員的喜愛。使用表單插件,再次重寫“表單校驗實例”,完整代碼如下:

  1. <form id="myform" action="action.asp">   
  2. 用戶昵稱:<input type="text" onblur="startCheck(this)" name="User" id="User"><input type="button" value="檢 查" class="button"><span id="UserResult"></span><br />   
  3. 輸入密碼:<input type="password" name="passwd1"><br />   
  4. 確認密碼:</td><td><input type="password" name="passwd2"><br /><br />   
  5. <input type="submit" value="注冊" class="button"><input type="reset" value="重置" class="button">   
  6. </form> 

HTML框架加了一個“檢查”的按鈕(使用手動校驗的方法),jQuery如下:

  1. <script language="javascript" src="jquery.min.js"></script>   
  2. <script language="javascript" src="jquery.form.js"></script>   
  3. <script language="javascript">   
  4. function startCheck(oInput){   
  5.     //首先判斷是否有輸入,沒有輸入直接返回,并提示   
  6.     if(!oInput.value){   
  7.         oInput.focus(); //聚焦到用戶名的輸入框   
  8.         document.getElementById("UserResult").innerHTML = "User cannot be empty.";   
  9.         return;   
  10.     }   
  11. }   
  12. $(function(){   
  13.     $("input[type=button]").click(function(){   
  14.         var options={   
  15.             target: "#UserResult"   
  16.         };   
  17.         //表單的Ajax化   
  18.         $("#myform").ajaxSubmit(options);   
  19.     });   
  20. });   
  21. </script> 

必要說明:
 
1、使用表單插件,必須加載jquery.form.js文件。
 
2、按Ajax方式提交數據,可以使用表單插件的ajaxSubmit(options)來按照Ajax的方式直接提交表單或者使用ajaxform(options)方法,通常在頁面加載完成時執行,用來將表單統一Ajax化,并且提交表單依然使用傳統的submit按鈕,只不過進行的是Ajax提交。其中參數options與$.ajax(options)的參數基本相同。

文章轉自qibaiyilang的博客,

原文地址:http://hi.baidu.com/qibaiyilang/blog/item/8a65ef54e69b0858574e0058.html

【編輯推薦】

  1. 你應該學習jQuery的七大理由
  2. 了解jQuery技巧來提高你的代碼質量
  3. jQuery 1.4十大新特性解讀及代碼示例
  4. 10個自由豐富的jQuery或JavaScript編輯器
  5. 大致說明JQuery源碼研究說明
責任編輯:王曉東 來源: 百度空間
相關推薦

2020-03-25 14:40:45

語言編程語言Hello

2011-03-28 16:14:38

jQuery

2021-05-18 14:42:55

PythonMySQL

2019-01-24 09:00:00

PythonAutoML機器學習

2011-03-15 14:16:27

2011-01-04 14:27:50

安裝linux方法

2015-03-23 12:33:28

2014-07-22 10:19:19

NeoBundle

2015-04-22 11:29:45

PythonPython創建瀑布圖

2019-12-12 20:03:08

PythonC語言編程語言

2011-12-26 10:35:03

Windows系統Linux系統

2011-12-26 10:28:59

Linux學習環境Linux系統

2019-09-05 10:07:23

ZAODeepfakes換臉

2023-10-27 11:38:09

PythonWord

2020-09-01 09:56:26

云端云計算云服務

2023-08-03 08:51:07

2020-05-28 13:33:30

React Hook前端開發

2018-11-01 10:10:35

網絡安全網絡攻擊網絡威脅

2010-11-16 16:11:28

Oracle身份驗證

2010-03-15 10:01:26

Ubuntu 系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美美女被c | 国产精品国产精品 | 999国产视频 | 美女黄18岁以下禁止观看 | 久草视频在线播放 | 国产日韩欧美精品 | 国产伦一区二区三区视频 | 欧美在线视频观看 | 久久综合一区 | 欧美精品一二区 | 日本三级日产三级国产三级 | 午夜免费视频 | 亚洲精品成人av久久 | 日本粉嫩一区二区三区视频 | 国产精品视频一 | 久久美国 | 91精品在线观看入口 | 亚洲国产高清免费 | 久久久2o19精品 | 国产一级淫片免费视频 | av资源网站 | 国产高清视频在线 | 麻豆久久久久久 | 久久久www成人免费无遮挡大片 | 日本精品久久 | 国产韩国精品一区二区三区 | 在线精品一区二区三区 | 欧美中文一区 | 亚洲精品久久久一区二区三区 | 日韩三级 | 久久久久国产精品午夜一区 | 亚洲视频第一页 | 国产精品麻 | 亚洲激情在线观看 | 亚洲精品高清视频在线观看 | 国产精品久久久久久久久久久新郎 | 一级黄色播放 | 日美女逼逼 | 久久免费资源 | 日韩免费毛片视频 | 国产日韩一区二区 |