热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> AJAX编程>>正文内容

Ajax表单验证用户名是否存在

发布时间:2008年12月11日点击数: 未知

做一个表单验证里面最简单的例子,检查用户名是否存在,使用Ajax完成表单验证的正常步骤应该是:

  1. 客户端收集表单信息。
  2. 使用XMLHttpRequest对象提交到服务器。
  3. 服务器完成验证的逻辑,返回结果信息。
  4. 浏览器端根据服务器返回的信息对用户做出一定的提示。

不过由于我的空间不支持任何服务器段语言,所以把本应在服务器的逻辑搬到了浏览器,由JavaScript来做,服务器只负责提供一个用户名的列表。最后的效果如下,试着输入test,cainiao8这些用户名,都会显示已注册。

JavaScript代码分析

首先,当文档载入完毕的时候,给表格设置change事件的响应函数ajaxValidate,代码如下:

addEventSimple(window,'load',function()
{  
var test = document.getElementById('username');  
addEventSimple(test,'change',ajaxValidate);
}
);

这样,当用户名文本框内的值改变之后,就会调用ajaxValidate函数,其代码如下:

function ajaxValidate(){  
var options = {  
url:'ajax/ajaxUsernames.xml',  
listener:callback,  
method:'GET'  
}
  
var request = createRequest(options);  
request.send(null);}

它会使用之前介绍的createRequest函数初始化一个XMLHttpRequest对象,并且将它发送到服务器,请求ajaxUsernames.xml文件。

最后就是callback函数了:

function callback(){  
var xmlDoc = this.responseXML;  
var root = xmlDoc.getElementsByTagName('root')[0];  
var nodes = root.getElementsByTagName("username");  
var currentNode = null;  
var username = document.getElementById('username').value;  
for(var i = 0; i < nodes.length; i++) {  
currentNode = nodes[i];  
if(username == currentNode.childNodes[0].nodeValue){      document.getElementById('test').innerHTML = '对不起!'+username+'已经被注册。';    
return;  
}    }
  
document.getElementById('test').innerHTML = '用户名' + username +'可以使用!';
}

callback函数在已经存在的用户名搜索当前用户输入的名字,判断是否已经存在。

本站热点业务

更多模板/案例展示

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作