Ajax 用户名验证是否存在
Ajax 用户名验证是否存在
发布时间:2016-12-29 来源:查字典编辑
摘要:客户端收集表单信息。使用XMLHttpRequest对象提交到服务器。服务器完成验证的逻辑,返回结果信息。浏览器端根据服务器返回的信息对用户...

客户端收集表单信息。

使用XMLHttpRequest对象提交到服务器。

服务器完成验证的逻辑,返回结果信息。

浏览器端根据服务器返回的信息对用户做出一定的提示。

不过由于我的空间不支持任何服务器段语言,所以把本应在服务器的逻辑搬到了浏览器,由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函数在已经存在的用户名搜索当前用户输入的名字,判断是否已经存在。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新AJAX相关学习
热门AJAX相关学习
编程开发子分类