JavaMaster_Demo
SZ_Orain
采纳率0%
2016-10-03 15:47 阅读 1.1k

我写的异步验证,其他时间都出发了,但是异步验证的校验没触发,是怎么回事咯,求前辈们指导下

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">



//获得XMLhttpRequest对象
function ajaxFunction(){
var xmlHttp;
try{ // Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e){
try{// Internet Explorer
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){}
}
}
return xmlHttp;

}
//获得了username的异步的httpservlet对象的工具。
function checkusername(){
//获得异步httpservlet
var value = document.getElementById("username").value;
var regUsername = /^[a-zA-Z\d]\w{3,11}[a-zA-Z\d]$/;
var span1 = document.getElementById("span1");
//每次使用之前先清空span。
span1.innerHTML = "";

//校验用户名的格式
if(!regUsername.test(value)){
span1.innerHTML = "账号输入有误,请重新输入";
return false;
}else{
var xjr = ajaxFunction();

xjr.onreadystatechange = function(){

if(xjr.readyState==4){
if(xjr.status==200){
//代表相应完成,接收数据即可
var data = xjr.responseText;
alert(data);

if(data == 1){
//证明existCustomer为null,该用户名没有注册
span1.innerHTML = "该用户名可以使用";

}else{
span1.innerHTML = "该用户名已被使用";
return false;
}
}
}

xjr.open("POST","${pageContext.request.contextPath}/savaUserName",true);
xjr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xjr.send("username=value");
}
return true;

}

}

  //验证密码,验证密码需要验证2大块内容,1为密码的语法是否正确,2为密码和重复密码是否相等。
   function checkpassword() {      
    //获得span的对象
    var span2 = document.getElementById("span2");
    //清空span
    span2.innerHTML = "";
    //首先定义密码的正则:
    var regPassword = /^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]{6,22}$/;
    //获得密码和重复密码的值。
    var password = document.getElementById("password").value;
    var repassword = document.getElementById("repassword").value;
    //两者对比
    if(!regPassword.test(password)){
     span2.innerHTML = "密码输入有误,请重新输入";
     return false;
    }
    return true;
}
function checkrepassword(){
    //获得span的对象
    var span2 = document.getElementById("span2");
    //清空span
    span2.innerHTML = "";       
    //获得密码和重复密码的值。
    var password = document.getElementById("password").value;
    var repassword = document.getElementById("repassword").value;
   if(password!=repassword){
    span2.innerHTML = "两次密码输入不同,请重新输入";
    return false;
    }
    return true;
}
//验证姓名,只需要验证不为空即可。
function checkname() {
    //获得name的值
    var name = document.getElementById("name").value;
    //获得name的正则表达式
    var reg=/^([\u4e00-\u9fa5]){2,7}$/; 
    var span3 = document.getElementById("span3");
    span3.innerHTML = "";
    if(!reg.test(name)){
       //证明name不匹配2-7个汉字
      span3.innerHTML = "你输入的姓名有误,请检查后输入";
      return false;            
    }
    return true;
}   
//验证昵称,不为空
function checknickname() {
    //获得昵称文本值
    var nickname = document.getElementById("nickname").value;
    //获得span3对象。
    var span4 = document.getElementById("span4");
    span3.innerHTML = "";
    if(nickname==""){
      span4.innerHTML = "昵称不能为空";
      return false;
    }
    return true;
}
//验证手机号码
function checkcellphone() {
    //获得手机号码的正则;
    var regphone = /^1[34578]{1}\d{9}$/;
    //获得手机号码的值。
    var cellphone = document.getElementById("cellphone").value;
    //获得span的对象。
    var span = document.getElementById("cell");
    span.innerHTML = "";
    //验证正则。
    if(!regphone.test(cellphone)){
    //证明手机号码格式不对
    span.innerHTML = "手机号码格式不对,请重新输入";
    return false;
    }
    return true;
}
//验证地址的文本值。
   function checktown() {
    //获得town的文本值
    var town = document.getElementById("town").value;
    //获得span5的值。
    var span5 = document.getElementById("span5");
    span5.innerHTML = "";
    //验证文本值不为空。
    if(town==""){
     span5.innerHTML = "地址不能为空";
     return false;
    }
    return true;
}
//返回总值
function fun() {
    return checkcellphone()&&checkname()&&checknickname()
    &&checkpassword()&&checkrepassword()&&checktown()&&checkusername();
}
    </script>









































































欢迎您成为超级购物系统会员
账号

密码

重复密码

您的姓名


您的昵称


出生日期




1990年
1991年
1992年
1993年
1994年
1995年
1996年
1997年
1998年



1月
2月

3月

4月

5月

6月

7月

8月

9月

10月

11月

12月


您的手机号码


您的地址

选择省份



选择城市


街道,乡镇







checkusername()函数中的xjr.onreadystatechange = function()函数不触发,
直接跳到了下面的return true中,这让我很不解。。。。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • dabocaiqq dabocaiqq 2016-10-03 15:50
    点赞 评论 复制链接分享
  • JavaMaster_Demo SZ_Orain 2016-10-03 15:51

    浏览器上没有报错,myeclipse上也没有报错,原因好难找!

    点赞 评论 复制链接分享

相关推荐