js表單驗(yàn)證實(shí)例講解

字號(hào):


    本文實(shí)例為大家分享了js表單驗(yàn)證,供大家參考,具體內(nèi)容如下
    JavaScript 可用來(lái)在數(shù)據(jù)被送往服務(wù)器前對(duì)HTML 表單中的這些輸入數(shù)據(jù)進(jìn)行驗(yàn)證。
    被JavaScript 驗(yàn)證的這些典型的表單數(shù)據(jù)有:
    1)、用戶是否已填寫(xiě)表單中的必填項(xiàng)目?
    2)、用戶輸入的郵件地址是否合法?
    3)、用戶是否已輸入合法的日期?
    4)、用戶是否在數(shù)據(jù)域 (numeric field) 中輸入了文本?
    gspan.html
    <html>
    <head>
      <title>表單驗(yàn)證實(shí)例</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <script src="check.js" type="text/javascript"></script>
      <style>
        span{ font-size:12px; }
        .stats1{ color : #ccc; }
        .stats2{ color :black; }
        .stats3{ color :red; }
        .stats4{ color :green; }
      </style>
    </head>
    <body>
      <form method="post" action="reg.php" onsubmit="return regs('click')" >
        用戶名:<input type="text" name="username" /><span>用戶名不能為空</span><br/>
        郵箱:<input type="text" name="email" /><span>郵箱不能為空</span><br/>
        密碼:<input type="password" name="password" /><span>密碼不能為空</span><br/>
        確認(rèn)密碼:<input type="password" name="chkpass" /><span>密碼不能為空</span><br/>
        <input type="submit" />
      </form>
    </body>
    </html>
    check.js
    function gspan(cobj){    //獲取表單后的span 標(biāo)簽 顯示提示信息
      if (cobj.nextSibling.nodeName != 'SPAN'){
        gspan(cobj.nextSibling);
      } else {
        return cobj.nextSibling;
      }
    }
    //檢查表單 obj【表單對(duì)象】, info【提示信息】 fun【處理函數(shù)】 click 【是否需要單擊, 提交時(shí)候需要觸發(fā)】
    function check(obj, info, fun, click){
      var sp = gspan(obj);
      obj.onfocus = function(){
        sp.innerHTML = info;
        sp.className = 'stats2';
      }
      obj.onblur = function(){
        if (fun(this.value)){
          sp.innerHTML = "輸入正確!";
          sp.className = "stats4";
        } else {
          sp.innerHTML = info;
          sp.className = "stats3";
        }
      }
      if (click == 'click'){
        obj.onblur();
      }
    }
    onload = regs;   //頁(yè)面載入完執(zhí)行
    function regs(click){
      var stat = true;    //返回狀態(tài), 提交數(shù)據(jù)時(shí)用到
      username = document.getElementsByName('username')[0];
      password = document.getElementsByName('password')[0];
      chkpass = document.getElementsByName('chkpass')[0];
      email = document.getElementsByName('email')[0];
      check(username, "用戶名的長(zhǎng)度在3-20之間", function(val){
        if (val.match(/^\S+$/) && val.length >=3 && val.length <=20){
          return true;
        } else {
          stat = false;
          return false;
        }
      }, click);
      check(password, "密碼必須在6-20位之間", function(val){
        if (val.match(/^\S+$/) && val.length >= 6 && val.length <=20){
          return true;
        } else {
          stat = false;
          return false;
        }
      }, click);
      check(chkpass, "確定密碼要和上面一致,規(guī)則也要相同", function(val){
        if (val.match(/^\S+$/) && val.length >=6 && val.length <=20 && val == password.value){
          return true;
        } else {
          stat = false;
          return false;
        }
      }, click);
      check(email, "請(qǐng)按郵箱規(guī)則輸入", function(val){
        if (val.match(/\w+@\w+\.\w/)){
          return true;
        } else {
          stat = false;
          return false;
        }
      }, click);
      return stat;
    }
    以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。