ajax检测用户名是否存在
2007-05-23 16:58
302 查看
html代码
<div class="Mtitle"><span>用户名:</span></div>
<div class="Mright"><input name="username" type="text" id="username" maxlength="20" size="20"
class="colorblue" onfocus="this.className='colorfocus';"
onblur="this.className='colorblue';checkusername(this.value);" />
<span id="checkresult">不超过20个字符</span></div>
javascript 代码
function checkusername(username)
{
var unlen = username.replace(/[^\x00-\xff]/g, "**").length;//若输入的不是ascii值 则算两个字符
if(unlen < 3 || unlen > 20) {
document.getElementById("checkresult").innerHTML = "<font color='#009900'>"
+ (unlen < 3 ? profile_username_tooshort : profile_username_toolong) + "</font>";
return;
}
ajaxRead("tools/ajax.aspx?t=checkusername&username=" + escape(username),
"showcheckresult(obj,'" + username + "');");
}
//escape
(charString)是对String对象进行Unicode编码转换,以便其能在所有的计算机上可读。所有空格、标点、重音符号以及其他非
ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。字符值大于 255 的以 %
uxxxx 格式存储。unescape则是逆向操作。
//在ajax.aspx中通过 System.Web.HttpUtility.UrlDecode()方法来获取原始字符
function showcheckresult(obj, username)
{
var res = obj.getElementsByTagName('result');//在xml中查找result标签的节点
var resContainer = document.getElementById("checkresult");
var result = "";
if (res[0] != null && res[0] != undefined)
{
if (res[0].childNodes.length > 1) {
result = res[0].childNodes[1].nodeValue;
} else {
result = res[0].firstChild.nodeValue;
}
}
if (result == "1")
{
resContainer.innerHTML = "<font color='#009900'>对不起,您输入的用户名 \"" + htmlEncode(username, true, 4) + "\" 已经被他人使用或被禁用,请选择其他名字后再试。</font>";
}
else
{
resContainer.innerHTML = profile_username_pass;
}
}
function createXMLHttp() {
if(window.XMLHttpRequest){
return new XMLHttpRequest();
} else if(window.ActiveXObject){
return new ActiveXObject("Microsoft.XMLHTTP");
}
throw new Error("XMLHttp object could be created.");
}
function ajaxRead(file,fun){
var xmlObj = createXMLHttp();
xmlObj.onreadystatechange = function(){
if(xmlObj.readyState == 4){
if (xmlObj.status ==200){
obj = xmlObj.responseXML;//为obj变量赋值 是utf-8编码
eval(fun);//给执行fun字符串中的javascript语句
}
else{
alert("error:[" + xmlObj.status + "]");
}
}
}
xmlObj.open ('GET', file, true);
xmlObj.send (null);
}
<div class="Mtitle"><span>用户名:</span></div>
<div class="Mright"><input name="username" type="text" id="username" maxlength="20" size="20"
class="colorblue" onfocus="this.className='colorfocus';"
onblur="this.className='colorblue';checkusername(this.value);" />
<span id="checkresult">不超过20个字符</span></div>
javascript 代码
function checkusername(username)
{
var unlen = username.replace(/[^\x00-\xff]/g, "**").length;//若输入的不是ascii值 则算两个字符
if(unlen < 3 || unlen > 20) {
document.getElementById("checkresult").innerHTML = "<font color='#009900'>"
+ (unlen < 3 ? profile_username_tooshort : profile_username_toolong) + "</font>";
return;
}
ajaxRead("tools/ajax.aspx?t=checkusername&username=" + escape(username),
"showcheckresult(obj,'" + username + "');");
}
//escape
(charString)是对String对象进行Unicode编码转换,以便其能在所有的计算机上可读。所有空格、标点、重音符号以及其他非
ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。字符值大于 255 的以 %
uxxxx 格式存储。unescape则是逆向操作。
//在ajax.aspx中通过 System.Web.HttpUtility.UrlDecode()方法来获取原始字符
function showcheckresult(obj, username)
{
var res = obj.getElementsByTagName('result');//在xml中查找result标签的节点
var resContainer = document.getElementById("checkresult");
var result = "";
if (res[0] != null && res[0] != undefined)
{
if (res[0].childNodes.length > 1) {
result = res[0].childNodes[1].nodeValue;
} else {
result = res[0].firstChild.nodeValue;
}
}
if (result == "1")
{
resContainer.innerHTML = "<font color='#009900'>对不起,您输入的用户名 \"" + htmlEncode(username, true, 4) + "\" 已经被他人使用或被禁用,请选择其他名字后再试。</font>";
}
else
{
resContainer.innerHTML = profile_username_pass;
}
}
function createXMLHttp() {
if(window.XMLHttpRequest){
return new XMLHttpRequest();
} else if(window.ActiveXObject){
return new ActiveXObject("Microsoft.XMLHTTP");
}
throw new Error("XMLHttp object could be created.");
}
function ajaxRead(file,fun){
var xmlObj = createXMLHttp();
xmlObj.onreadystatechange = function(){
if(xmlObj.readyState == 4){
if (xmlObj.status ==200){
obj = xmlObj.responseXML;//为obj变量赋值 是utf-8编码
eval(fun);//给执行fun字符串中的javascript语句
}
else{
alert("error:[" + xmlObj.status + "]");
}
}
}
xmlObj.open ('GET', file, true);
xmlObj.send (null);
}
相关文章推荐
- 毕业设计(十)---用DWR实现 代替AJAX 用户注册检测用户名是否已经存在
- Ajax简单应用,Ajax检测用户名是否存在
- Ajax简单应用,检测用户名是否存在
- 毕业设计(十)---用DWR实现 代替AJAX 用户注册检测用户名是否已经存在
- ajax 检测注册用户名是否存在
- PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
- PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
- 应用ajax实现检测注册用户名是否已经存在
- jquery与php交互的ajax应用第一课:检测用户注册时用户名是否存在
- spring+jquery+ajax 检测用户名是否存在
- Ajax检测用户名是否存在
- Ajax简单应用,检测用户名是否存在 (转)
- ajax检测用户名是否存在
- 使用jquery+ajax方式实现用户注册时,检测用户名是否存在
- 利用ajax检测用户名是否存在
- JQuery+Ajax实现用户名的检测(用户名是否已存在)
- Ajax js 使用Ajax检测用户名是否存在
- Ajax检测用户名是否存在
- 使用jquery+ajax方式实现用户注册时,检测用户名是否存在
- jquery与php交互的ajax应用第一课:检测用户注册时用户名是否存在