利用ajax異步校驗驗證碼(轉)
阿新 • • 發佈:2018-02-13
left 獲取 track eth tco lds dsm sta source
利用ajax異步校驗驗證碼
示例結果如圖所示
具體步驟如下:
step1:
jsp頁面及js腳本
- <%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
- <html>
- <head>
- <title>form</title>
- <script type="text/javascript" src="<%=request.getContextPath()%>/js/my.js"
- <script type="text/javascript">
- //檢查用戶名是否存在
- function check_username(){
- //step1,獲得ajax對象
- var xhr = getXhr();
- var username = $V(‘userrname‘);
- //step2,使用ajax對象發請求(get/post)
- xhr.open(‘get‘,‘checkUsername?username
- //step3,編寫服務器端的處理程序
- //step4,編寫事件處理函數
- xhr.onreadystatechange = function(){
- if(xhr.readyState==4){
- if(xhr.status==200){
- //服務器訪問正常
- var txt
- $(‘check_msg‘).innerHTML = txt;
- }else{
- $(‘check_msg‘).innerHTML = ‘驗證出錯‘;
- }
- }
- };
- $(‘check_msg‘).innerHTML = ‘正在驗證‘;
- xhr.send(null);
- }
- //檢查驗證碼是否正確
- function check_number(){
- var xhr = getXhr();
- var code = $V(‘code‘);
- xhr.open(‘get‘,‘checkNumber?code=‘+code,true);
- xhr.onreadystatechange = function(){
- if(xhr.readyState==4){
- if(xhr.status==200){
- //服務器訪問正常
- var txt = xhr.responseText;
- $(‘code_msg‘).innerHTML = txt;
- }else{
- $(‘code_msg‘).innerHTML = ‘驗證出錯‘;
- }
- }
- };
- $(‘code_msg‘).innerHTML = ‘正在驗證‘;
- xhr.send(null);
- }
- </script>
- </head>
- <body>
- <form action="" method="post">
- <fieldset>
- <legend>登陸</legend>
- <!-- <a href="javascript:;" onclick="alert(getXhr())">測試獲取ajax對象</a> -->
- 用戶名:<input id="userrname" name="username" onblur="check_username();">
- <span id="check_msg" style="color:red;"></span><br/>
- 密碼:<input name="pwd" type="password"><br/>
- 驗證碼:<img id="image" src="checkcode" onclick="this.src=‘checkcode?‘+(new Date()).getTime()">
- <a href="javascript:;" onclick="$(‘image‘).src=‘checkcode?‘+(new Date()).getTime()">換一張</a>
- <input id="code" name="code" onblur="check_number();"/><span id="code_msg" style="color:red;"></span><br/>
- <input type="submit" value="提交"><br/>
- </fieldset>
- </form>
- </body>
- </html>
my.js代碼:封裝的幾個常用函數
[javascript] view plain copy print?
- //根據id獲取節點
- function $(id){
- return document.getElementById(id);
- }
- //根據id獲取節點的值
- function $V(id){
- return $(id).value;
- }
- //獲取ajax對象
- function getXhr(){
- var xhr = null;
- if(window.XMLHttpRequest){
- xhr = new XMLHttpRequest();
- }else{
- xhr = new ActiveXObject(‘Microsoft.XMLHttp‘)
- }
- return xhr;
- }
具體細節見代碼
利用ajax異步校驗驗證碼(轉)