Ajax無重新整理驗證使用者名稱、密碼和郵箱等輸入資訊

來源:互聯網
上載者:User

首先來看主程式碼(reg.html):

 代碼如下 複製代碼

<div id="reg">
        請輸入使用者名稱:<input id="usrname" value="請輸入使用者名稱" onfocus="regInit();regKey()"   onblur="regInit()" onkeyup="regKey()"/>
</div>

<div id="regtip" style="display:none">使用者名稱重複或非法</div>

<!--以下為JS代碼部分,功能是Ajax響應驗證使用者名稱合法性-->

 代碼如下 複製代碼

<script language="javascript">

function getem(aID)
{
      return (document.getElementById) ? document.getElementById(aID): document.all[aID];
}

function changeDsp()
{
    getem(regtip).style.display="";//也可以使用inner方式重新賦值
}
<!--Ajax校正使用者名稱-->
var v=getem('usrname');
var s_value=getem('usrname').value;//儲存初值
function regInit()
{
 v.style.color="#000000";
 if(v.value==s_value)//無效使用者名稱
  v.value='';
 else if(v.value==''){//恢複預設提示資訊
  v.value=s_value;
  v.style.color="";
 }
}
function regKey()
{
 str=v.value;
 if(!str){
  return 0;
 }
 var xhttp=getXmlhttp(); 
 xhttp.onreadystatechange=function(){
  if(xhttp.readyState == 4 && (xhttp.status==200 || window.location.href.indexOf("http")==-1)){
   document.getElementById("regtip").innerHTML=xhttp.responseText;  
   changeDsp();
  }
 }
 var url = "chkusr.php?usr="+ encodeURI(str);//需要進行Ajax的URL地址 
 xhttp.open("GET",url,true);
 xhttp.setRequestHeader("If-Modified-Since","0");//不緩衝
 xhttp.send(null);
}
</script>

程式說明:

1、onblur事件是輸入框失去焦時間點事件,onkeyup是鍵盤按下又鬆開時候觸發。

2、reg是註冊資訊部分,這裡大家可以加上自己的代碼,比如使用者名稱、密碼、郵箱等都可以使用Ajax進行適時校正。

3、regtip是提示資訊部分,一般為空白,如果Ajax校正失敗,則在這裡進行錯誤提示。

4、chkusr.php是使用者名稱的校正程式,後面的usr就是傳遞的URL參數,如果使用ASP等其它語言,修改方式類似,最終只需要返回查詢的結果提示資訊即可,比如“輸入使用者名稱重複,請更換個更酷的”、“電子郵箱已被註冊,請修改後再次提交註冊”等等。

5、樣本chkusr.php程式如下,實際使用肯定需要跟資料庫相連,特別要小心使用者輸入資訊的過濾和安全:

 代碼如下 複製代碼

<?php

//注意這裡好像是用不帶PHP三個字母傳回值是包括PHP限定符(在IE6上),帶PHP就沒問題,稍後再研究一下具體區別

$usr=$_trim['usr'];

if($usr=='admin')

{
        echo "Sorry, this name is fobiddened to use.";

}

else

{

        echo "Hi, this name is free for register."

}
?>

上面寫的是js ajax了,其實但現在js ajax用得很少,用得多的是jquery+ajax/" target="_blank">jquery ajax了,下面我也來介紹。

執行個體:
1、請求頁面AJax.aspx

HTML代碼

 代碼如下 複製代碼

Code
<div>
        <input id="txtName" type="text" /><input type="button" value="查看使用者名稱是否存在" id="btn" onclick="JudgeUserName();" />
        <div id="showResult" style="float:left">div>
    div>

JS代碼

 代碼如下 複製代碼

Code
<script type="text/javascript" src="CSS/jquery-1.3.2.js"></script>
     <script type="text/javascript">
        function JudgeUserName()
        {
            $.ajax({
            type:"GET",
            url:"AjaxUserInfoModify.aspx",
            dataType:"html",
            data:"userName="+$("#txtName").val(),
            beforeSend:function(XMLHttpRequest)
                {
                    $("#showResult").text("正在查詢");
                    //Pause(this,100000);
                },
            success:function(msg)
                {  
                    $("#showResult").html(msg);
                    $("#showResult").css("color","red");
                },
           complete:function(XMLHttpRequest,textStatus)
                {
                    //隱藏正在查詢圖片
                },
          error:function()
               {
                    //錯誤處理
               }
            });
        }

     </script>

 

2 、頁面AjaxUserInfoModify.aspx

後台代碼

 代碼如下 複製代碼

Code
protected void Page_Load(object sender, EventArgs e)
    {
        string userName = Request.QueryString["userName"].ToString ();
        if (userName == "James Hao")
        {
            Response.Write ("使用者名稱已經存在!");
        }
        else
        {
            Response.Write ("您可以使用此使用者名稱!");
        }
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.