利用ajax异步校验验证码
发布时间:2020-12-16 01:47:30 所属栏目:百科 来源:网络整理
导读:利用ajax异步校验验证码 示例结果如图所示 具体步骤如下: step1: jsp页面及js脚本 %@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %htmlheadtitleform/titlescript type="text/javascript" src="%=request.getContextPath()%/js/my.j
利用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> <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='+username,true); //step3,编写服务器端的处理程序 //step4,编写事件处理函数 xhr.onreadystatechange = function(){ if(xhr.readyState==4){ if(xhr.status==200){ //服务器访问正常 var txt = xhr.responseText; $('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代码:封装的几个常用函数
//根据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; } 具体细节见代码 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在UItextView中添加placeHolder文本?在iphone sdk
- 产品质量与生产率依赖的因素
- Nosql Mongodb之旅(25)—MongoDB Replica Sets增加节点
- SQLite做为本地缓存应注意的几大方面
- 在C中,`var << ifstream`与`ifstream >&g
- 红宝石 – 耙子 – 全部描述(未剪切)
- swift – “Collection where Indices.Iterator.Element ==
- 关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计
- React-native单元测试框架-Jest
- 不能使用外部参考与C#控制台应用程序