急!!textbox失去焦点的时候验证账号是否存在?
我做一个注册页面,用js验证了用户输入,但是我想在输入账号的文本框失去焦点的时候,就验证账号是否存在,在js中调用的后台方法,但是不行啊!
先看代码嘛!
CheckUserName()是后台的一个方法,从数据库中查是否存账号,返回字符串,0和1, 0代表不存在,1代表存在!
我知道var uResult =e="<%=CheckUserName()%>";
这样的方法是在页面加载时就运行了后台的方法,所以请教大家有没有更好的办法,ajax我不怎么会!
function CheckUserName(){
var uName = document.getElementById('<%=txtUserName.ClientID%>').value;
var uNameMs = document.getElementById('<%=uNameMessage.ClientID%>');
var uResult =e="<%=CheckUserName()%>";
if(uName!="")
{
if(uName.length>=5&&uName.length<=16)
{
if(!(/>|<|,|\[|\]|\{|\}|\?|\/|\+|=|\||\'|\\|"|:|;|\~|\!|\#|\*|\$|\@|\_|\-|\%|\^|\&|\(|\)|`/i).test(uName))
{
if(uResult=="0")
{
uNameMs.innerHTML="<img class='check_img' src='images/yes.jpg' alt='' />";
return true;
}
else
{
uNameMs.innerHTML="<img class='check_img' src='images/yes.jpg' alt='' /> 账号已存在";
return false;
}
}
else
{
uNameMs.innerHTML="<img class='check_img' src='images/no.jpg' alt='' /> 用户名不能包含特殊字符";
return false;
}
}
else
{
uNameMs.innerHTML="<img class='check_img' src='images/no.jpg' alt='' /> 用户名长度必须在5-16之间";
return false;
}
}
else
{
uNameMs.innerHTML="<img class='check_img' src='images/no.jpg' alt='' /> 用户名不能为空";
return false;
}
}
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function checkEmail(){
createXMLHttpRequest();
var email = document.getElementById("txtEmail").value;
url = "Handler/EmailExists.ashx?email=" + email + "&t=" + (new Date()).getTime();
xmlHttp.open("GET", encodeURI(url), true);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var returnText = xmlHttp.responseText;
if (returnText == "have") {
//存在
}
else {
//不存在
}
}
}
xmlHttp.send(null);
}