var xmlhttp;
function trim(str){
    var t = str.replace("/(^\s*)|(\s*$)/g", "");
    return t.replace("/(^ *)|( *$)/g","");
}
function createXMLHttpRequest(){
    if(window.ActivrObject){
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }else if(window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
    }
}
function validateform(){
    var nickname = document.form1.nickname.value;
    var pass = document.form1.pass.value;
    var confirmpass = document.form1.confirmpass.value;
    var email = form1.email.value;
    var dataStr="nickname="+nickname+"&pass="+pass+"&confirmpass="+confirmpass;
    var url = "/ajax/servlet/ValidForm";
    createXMLHttpRequest();
    xmlhttp.open("POST", url, true);
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlhttp.send(dataStr);
    xmlhttp.onreadystatechange=callback;
}
function callback(){
    if(xmlhttp.readyState==4&&xmlhttp==200){
        var s = admin;
        if(trim(s) == 1){
            alert("注册成功");
        }
        if(trim(s) == 2){
            var tip = "该名称已经存在!";
            document.getElementById("nicknamelabel").innerHTML = tip;
            form1.nickname.value = "";
        }
        if(trim(s)==0){
            alert("产生异常");
        }
    }else{
        console.debug(xmlhttp);
        console.debug(xmlhttp.readyState);
        console.debug(xmlhttp.status);
    }
}
//长度限制
function checkpass(pass){
    var result = pass.match("^\w+$ ");//数字,字母,下划线
    if(result == null){
        return false;
    }else{
        return true;
    }
}
function checkemail(email){
    var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
//  var result = email.match(re);
    if(re.test(email)){
        return true;
    }else{
        return false;
    }
}
function validate_form(){
    if(form1.nickname.value == ""){
        alert("昵称不能为空!");
        return false;
    }
    if(form1.pass.value == ""){
        alert("密码不能为空!");
        return false;
    }
    if(form1.confirmpass.value == ""){
        alert("确认密码不能为空!");
        return false;
    }
    if(form1.confirmpass.value != form1.pass.value){
        alert("确认密码不相等");
        return false;
    }
    if(checkemail(form1.email.value) == false){
        alert("email 不合法!");
        return false;
    }
    return true;
}
function reg(){
    if(validate_form() == false)
        return false;
    validateform();
}
package com.dh.service;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.dh.dao.SqlDao;
public class ValidateService {
    private SqlDao db = new SqlDao();
    private ResultSet rs = null;
    public int validateNickName(String nickName){
        String sql = "select * from user where nickName = '"+nickName+"'";
        int flag = 0;
        rs = db.executeQuery(sql);
        try {
            if(rs.next())
                flag = 1;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return flag;
    }
}
https://github.com/adolphlwq/problems

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
问题解决:
XHR的每一个方法都会写到网络流,但是只有在send()方法后HXR才会开启连接.所以XHR的方法要有一定的顺序.onreadystatechange()方法在send()方法之前.
if(xmlhttp.readyState==4&&xmlhttp==200)应该写成if(xmlhttp.readyState==4&&xmlhttp.status==200),代码主要是参考书本的,书本比较老了,需要改版.