Ajax 用户名验证是否存在
程序员文章站
2022-03-14 10:50:09
客户端收集表单信息。 使用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函数在已经存在的用户名搜索当前用户输入的名字,判断是否已经存在。
使用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函数在已经存在的用户名搜索当前用户输入的名字,判断是否已经存在。
上一篇: 详解Nuxt.js部署及踩过的坑
下一篇: 七夕幽默谈感情