<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    最近發現使用prototype來做表單的前臺驗證感覺非常不錯,prototype.js 是由 Sam Stephenson 寫的一個 javascript 類庫。這個構思奇妙,而且兼容標準的類庫,能幫助你輕松建立有高度互動的 Web 2.0 特性的富客戶端頁面。下面是一個使用它做前臺表單驗證的例子。

    var flag=[true,true,true,true,true,true,true,true,true,true];
           var userNameInfo=["用戶名不能為空","用戶名必須為6~20位","用戶已存在","恭喜用戶名可以使用"];
           var passwordInfo=["密碼不能為空","密碼長度不能小于6位","請再次輸入密碼","兩次密碼輸入不一致,請重新輸入"];
           function changeImage()
        {
        var timenow=new Date().getTime();
              $('checkcode').src = "image/loading.gif";
              $('checkcode').src = "random.jsp?d="+timenow;
           }
           function checkUserName()
        {
        if ($F("userName").match(/^\s*$/g)) {
               $("userNameErr").innerHTML =userNameInfo[0];
         flag[0]=false;
          }else{
      
        var re=/^(\w){6,20}$/;
        var tt = re.test($F("userName"));
        if(tt==false){
       $("userNameErr").innerHTML = userNameInfo[1];
       flag[0]=false;
           }else{
         $("userNameErr").innerHTML = "<img src='image/loading.gif'>";
           isExsitUsername(); 
       }
        }
       }
        function checkPassword()
        {
         
        if ($F("password").match(/^\s*$/g)) {
               $("pwdErr").innerHTML =passwordInfo[0];
               flag[1]=false;
      }else if($F("password").length<6){
          $("pwdErr").innerHTML=passwordInfo[1];
          flag[1]=false;
      }else{
          $("pwdErr").innerHTML="";
          flag[1]=true;
      }
      
        }
        function checkRePassword(){
          if ($F("password2").match(/^\s*$/g)) {
              $("repwdErr").innerHTML =passwordInfo[2];
              flag[2]=false;
      }else if($F("password2")!=$F("password")){
       $("repwdErr").innerHTML=passwordInfo[3]; 
       flag[2]=false; 
       }else{
          $("repwdErr").innerHTML="";
          flag[2]=true;
       }
        }
        function checkName(){
           if($F("name").match(/^\s*$/g)){
          $("nameErr").innerHTML="昵稱不能為空";
          flag[3]=false;
        }else{
         $("nameErr").innerHTML="";
         flag[3]=true;
        }
        }
        function checkQuestion(){
           if($F("question").match(/^\s*$/g)){
              $("questionErr").innerHTML="請選擇一個安全問題";
              flag[4]=false;
           }else{
              $("questionErr").innerHTML="";
              flag[4]=true;
           }
        }
        function checkAnswer(){
          if($F("answer").match(/^\s*$/g)){
             $("answerErr").innerHTML="安全回答不能為空";
             flag[5]=false;
          }else if($F("answer").length<4){
             $("answerErr").innerHTML="安全回答問題不能少于4個字符";
             flag[5]=false;
          }else{
              $("answerErr").innerHTML="";
             flag[5]=true;
          }
        }
        function checkEmail()
        {
         var reEmail =/(\S)+[@]{1}(\S)+[.]{1}(\w)+/;
          if($F("email").match(/^\s*$/g)){
             $("emailErr").innerHTML="Email不能為空";
             flag[6]=false;
          }else{
               var temp=reEmail.test($("email").value);
               if(temp==false){
                 $("emailErr").innerHTML= "Email必須符合要求!";
                    flag[6]=false;
                  }else{
                    $("emailErr").innerHTML="<img src='image/loading.gif'>";
                                 isExsitEmail();
                 
                  }
             }

        }
        function checkMobile(){
        var patrn=/^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})$/;
        if($F("mobile").match(/^\s*$/g)){
             $("mobileErr").innerHTML="";
          flag[7]=true;
        }else{
          if (!patrn.test($F("mobile"))) {
             $("mobileErr").innerHTML="請輸入正確的手機號碼";
             flag[7]=false;
          }else{
            $("mobileErr").innerHTML="";
            flag[7]=true;
          }
          
        }  
          
       }
       function checkPID(){
         var patrn=/(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/;
         if($F("PID").match(/^\s*$/g)){
           $("PIDErr").innerHTML="";
           flag[8]=true;
         }else{
          if (!patrn.test($F("PID")))  
             {
             $("PIDErr").innerHTML="身份證號碼有誤!";
             flag[8]=false;
          }else{
           $("PIDErr").innerHTML="";
           flag[8]=true;
        }
       }
           
        }
       
      function isExsitUsername(){
         var username=$F("userName");
         var url='user_checkUsername.do';
         var pars="username="+username;
         var usernameAjax=new Ajax.Request(
           url,
           {method:'get',parameters:pars,onComplete:showUResult}
           );
      }
      function showUResult(result){
      
           if(result.responseText.indexOf("true")!=-1){
              
              $("userNameErr").innerHTML=userNameInfo[2];
              flag[0]=false;
           }else{
              $("userNameErr").innerHTML="<font color='green'>"+userNameInfo[3]+"</font>";
              flag[0]=true;
           }
      }
      function isExsitEmail(){
         var email=$F("email");
         var url='user_checkEmail.do';
         pars="email="+email;
         var emailAjax=new Ajax.Request(
            url,
            {method:'get',parameters:pars,onComplete:showEResult}
            );
      }
      function showEResult(result){
       if(result.responseText.indexOf("true")!=-1){
           $("emailErr").innerHTML="這個Email已經有人使用,請換一個";
           flag[6]=false;
       }else{
           $("emailErr").innerHTML="<font color='green'>已通過驗證</font>";
           flag[6]=true;
       }
      }
      function checkCode(){
          if($("code").value.match(/^\s*$/g)){
             $("codeErr").innerHTML="驗證碼不能為空";
             flag[9]=false;
        }else{
          isCorrectCode();
        }
        }
      function isCorrectCode(){
         var code=$F("code");
         var url='checkcode.jsp';
         pars="code="+code+"&ram="+Math.random();
         var codeAjax=new Ajax.Request(
         url,
         {method:'get',parameters:pars,asynchronous:false,onComplete:showCResult}
         );
        
      }
      function showCResult(result){
         if(result.responseText.indexOf("validate_successful")!=-1){
           $("codeErr").innerHTML="";
           flag[9]=true;
         }else{
           $("codeErr").innerHTML="錯誤的驗證碼";
           flag[9]=false;
         }
      }
     function checkform(){
          checkUserName();
          checkPassword();
          checkRePassword();
          checkName();
          checkQuestion();
          checkAnswer();
          checkEmail();
          checkMobile();
          checkPID();
          checkCode();
          for(var i=0;i<flag.length;i+=1){
            if(flag[i]==false)
              return false;
         }
         return true;
         
       }
    其中

    $(): 函數是在 DOM 中使用過于頻繁的 document.getElementById() 方法的一個便利的簡寫,就像這個 DOM 方法一樣,這個方法返回參數傳入的 id 的那個元素。
    $F() :函數是另一個大收歡迎的“快捷鍵”,它能用于返回任何表單輸入控件的值,比如文本框或者下拉列表。這個方法也能用元素 id 或元素本身做為參數。
    Ajax.Request 類:如果你不使用任何的幫助程序包,你很可能編寫了整個大量的代碼來創建 XMLHttpRequest 對象并且異步的跟蹤它的進程,然后解析響應并處理它。當你不需要支持多于一種類型的瀏覽器時你會感到非常的幸運,反之你就要考慮使用prototype的Ajax.Request類。你也許注意到了在使用它做無刷新驗證用戶名,Email以及驗證碼時,使用'get'方法把參數傳遞給url,后面都帶有一個參數,這個參數值是當前系統時間或是一個隨機參數的一個數,這樣做是為了避免瀏覽器的從它的緩存中讀取響應信息,影響結果的正確性。


     

    posts - 146, comments - 143, trackbacks - 0, articles - 0

    Copyright © flustar

    主站蜘蛛池模板: 国产福利电影一区二区三区,亚洲国模精品一区 | 久久久综合亚洲色一区二区三区 | 亚洲激情黄色小说| 99精品在线免费观看| 亚洲AV日韩AV永久无码久久| 在线看片免费人成视频福利| 亚洲成亚洲乱码一二三四区软件| 在线毛片片免费观看| 亚洲综合图片小说区热久久| 99热在线精品免费播放6| 亚洲精品中文字幕无乱码| 一个人看www在线高清免费看 | 免费看又爽又黄禁片视频1000| 亚洲国产成人久久精品软件 | 亚洲av中文无码乱人伦在线r▽| 在线观看片免费人成视频无码| 亚洲国产香蕉碰碰人人| 成人免费视频69| 亚洲AV无码成人精品区日韩| 免费人成在线观看网站品爱网日本| 污网站在线观看免费| 亚洲AV无码久久精品狠狠爱浪潮| 9277手机在线视频观看免费| 亚洲国产美女精品久久| 毛片a级毛片免费播放100| 美女18毛片免费视频| 国产亚洲精品a在线观看app| 18禁无遮挡无码国产免费网站| 亚洲熟妇av午夜无码不卡 | 亚洲国产精品成人| 日韩免费无码一区二区三区| 亚洲国产成a人v在线观看| 国产乱色精品成人免费视频 | 欧美在线看片A免费观看| 一个人看的www免费在线视频| 亚洲国产女人aaa毛片在线| 女人18毛片水真多免费看 | AV免费网址在线观看| japanese色国产在线看免费| 亚洲婷婷天堂在线综合| 成人亚洲综合天堂|