ajax檢測使用者名稱是否存在

來源:互聯網
上載者:User
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);
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.