//定义一个变量用于存放XMLHttpRequest对象
var xmlHttp;
//该函数用于创建一个XMLHttpRequest对象
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
//这是一个启动AJAX异步通信的方法
function checkname()
{
var a=1;
var b=0;
var name = document.getElementById("username").value;
if (name == ""){//如果尚未输入注册名
document.getElementById("namets").innerHTML="*用户名必填(最长16位)";
document.getElementById("namets").style.cssText="font-size:11px;color:red;";
document.getElementById("names").value=b;
add();
return;
}
else {
document.getElementById("names").value=a;
document.getElementById("namets").innerHTML="";
document.getElementById("namets").style.cssText="font-size:11px;color:blue;";
return;
}
//创建一个XMLHttpRequest对象
createXMLHttpRequest();
//通过GET方法向指定的URL建立服务器的调用,这个链接中的action的方法是查询数据库的
xmlHttp.open("GET", "regcontinue.action?username="+name+"&t="+new Date().getTime(),true);
xmlHttp.onreadystatechange =function(){ processor(str1,str2);};
//发送请求
xmlHttp.send(null);
}
//这是一用来处理状态改变的函数
function processor ()
{
//定义一个变量用于存放从服务器返回的响应结果
var responseContext;
var username = document.getElementById("username").value;
alert("processor begain1");
alert("after process:"+xmlHttp.readyState);
document.getElementById("namets").innerHTML=xmlHttp.readyState;
if(xmlHttp.readyState == 4)
{ //如果响应完成
if(xmlHttp.status == 200)
{//如果返回成功
//取出服务器的响应内容
alert("mmmmmmmmmmm200in");
alert(responseContext.length);
//如果注册名检查有效
if ( responseContext.indexOf("1") )
// if ( responseContext.value.equals("ok") )
{
document.getElementById("namets").innerHTML="√";document.getElementById("namets").style.cssText="font-size:11px;color:green;";
document.getElementById("names").value=a;add();
}
else
{
document.getElementById("namets").innerHTML="×已存在的用户名";
document.getElementById("namets").style.cssText="font-size:11px;color:red;";
document.getElementById("names").value=b;add();
}
}
}
else{
alert("readyState != 4");
alert("after !4: "+xmlHttp.readyState);
alert("响应失败!");
}
}
3 个解决方案
#1
jsp页面中:<input type="text" id="username" name="username" onBlur="checkname();"/> </td>
可是一直没有反应,没有调用到那个状态改变事件process方法,我用的是IE浏览器,各位大虾们帮忙看下吧
可是一直没有反应,没有调用到那个状态改变事件process方法,我用的是IE浏览器,各位大虾们帮忙看下吧
#2
function checkname() {
var a = 1;
var b = 0;
var name = document.getElementById("username").value;
if (name == "") {//如果尚未输入注册名
document.getElementById("namets").innerHTML = "*用户名必填(最长16位)";
document.getElementById("namets").style.cssText = "font-size:11px;color:red;";
document.getElementById("names").value = b;
add();
return;
}
else {
document.getElementById("names").value = a;
document.getElementById("namets").innerHTML = "";
document.getElementById("namets").style.cssText = "font-size:11px;color:blue;";
return;
}
你这个checkname都直接return退出函数了,根本没有执行下面的ajax代码好不。。去掉else的return
var a = 1;
var b = 0;
var name = document.getElementById("username").value;
if (name == "") {//如果尚未输入注册名
document.getElementById("namets").innerHTML = "*用户名必填(最长16位)";
document.getElementById("namets").style.cssText = "font-size:11px;color:red;";
document.getElementById("names").value = b;
add();
return;
}
else {
document.getElementById("names").value = a;
document.getElementById("namets").innerHTML = "";
document.getElementById("namets").style.cssText = "font-size:11px;color:blue;";
return;
}
你这个checkname都直接return退出函数了,根本没有执行下面的ajax代码好不。。去掉else的return
#3
确实如此啊,不过在IE5里面状态一直为1,而在FF中一切正常
#1
jsp页面中:<input type="text" id="username" name="username" onBlur="checkname();"/> </td>
可是一直没有反应,没有调用到那个状态改变事件process方法,我用的是IE浏览器,各位大虾们帮忙看下吧
可是一直没有反应,没有调用到那个状态改变事件process方法,我用的是IE浏览器,各位大虾们帮忙看下吧
#2
function checkname() {
var a = 1;
var b = 0;
var name = document.getElementById("username").value;
if (name == "") {//如果尚未输入注册名
document.getElementById("namets").innerHTML = "*用户名必填(最长16位)";
document.getElementById("namets").style.cssText = "font-size:11px;color:red;";
document.getElementById("names").value = b;
add();
return;
}
else {
document.getElementById("names").value = a;
document.getElementById("namets").innerHTML = "";
document.getElementById("namets").style.cssText = "font-size:11px;color:blue;";
return;
}
你这个checkname都直接return退出函数了,根本没有执行下面的ajax代码好不。。去掉else的return
var a = 1;
var b = 0;
var name = document.getElementById("username").value;
if (name == "") {//如果尚未输入注册名
document.getElementById("namets").innerHTML = "*用户名必填(最长16位)";
document.getElementById("namets").style.cssText = "font-size:11px;color:red;";
document.getElementById("names").value = b;
add();
return;
}
else {
document.getElementById("names").value = a;
document.getElementById("namets").innerHTML = "";
document.getElementById("namets").style.cssText = "font-size:11px;color:blue;";
return;
}
你这个checkname都直接return退出函数了,根本没有执行下面的ajax代码好不。。去掉else的return
#3
确实如此啊,不过在IE5里面状态一直为1,而在FF中一切正常