關於表單驗證 無法驗證用戶名和密碼是否相同 密碼的長度和合法性也無法檢查 如果去掉這些部分,其他能正常檢查


//這個JS文件中的檢查主要是彈出警告框   
function checkdata() {   
        
      //將用戶名先轉化成小寫   
      var ssn=form.username.value.toLowerCase();   
        
      //用戶名檢查   
      if (!checkUserName(ssn)) return false;   
        
      //密碼位數的檢查   
      if( strlen(form.pwd.value)<6 || strlen(form.pwd.value)>16 ) {   
            alert("\正確地登錄密碼長度為6-16位,僅可用英文、數字、特殊字符!");   
            //將光標定位到密碼輸入欄,提高用戶體驗   
            form.pwd.focus();   
            return false;   
      }   
        
      //確認密碼位數的檢查   
      if( strlen2(form.pwd.value) ) {   
            alert("\您的密碼中包含了非法字符,僅可用英文、數字、特殊字符!");   
            form.pwd.focus();   
            return false;   
      }   
        
      if( form.pwd.value == form.username.value ) {   
            alert("\用戶名和密碼不能相同!");   
            form.pwd.focus();   
            return false;   
      }   
        
      if( form.pwd2.value =="" ) {   
            alert("\請輸入密碼確認!");   
            form.pwd2.focus();   
            return false;   
      }   
        
      if( form.pwd2.value != form.pwd.value ) {   
            alert("\兩次密碼輸入不一致!");   
            form.pwd.focus();   
            return false;   
      }   
        
      //性別檢查   
      if( !(form.sex[0].checked || form.sex[1].checked) ) {   
            alert("請選擇性別!");   
            form.sex[0].focus();   
            return false;   
      }   
        
      //省份檢查   
      if( form.province.selectedIndex == 0 ) { 

      // 也可以form.province.value==hubei ,但更推薦使用selectedIndex,因為有可能option沒有寫value屬性

            alert("請選擇省份!");   
            form.province.focus();   
            return false;   
      }   
        
      //自我介紹檢查   
      if(form.intro.value == "") {   
            alert("\自我介紹不能為空!");   
            form.intro.focus();   
            return false;   
      }   
        
      //所有單項的檢查均通過,則該表單的檢查通過   
      return true;   
}   
    
//檢查用戶名的函數   
function checkUserName(ssn){   
      //用戶名長度檢查   
      if( ssn.length<3 || ssn.length>18 ) {   
            alert("\請輸入正確的用戶名,用戶名長度為3-18位!");   
            form.username.focus();   
            return false;   
      }   
      //用戶名中是否有空格的檢查   
      if (isWhiteSpace(ssn)){   
            alert("\請輸入正確的用戶名,用戶名中不能包含空格!");   
            form.username.focus();   
            return false;   
      }   
      //用戶名中是否含有不符合要求的字符的檢查   
      if (!isSsnString(ssn)){   
            alert("\    對不起,您選擇的用戶名不正確或已被占用!用戶名\n由a~z的英文字母(不區分大小寫)、0~9的數字、點、減\n號或下划線組成,長度為3~18個字符,只能以數字或字母\n開頭和結尾,例如:kyzy_001。");   
            form.username.focus();   
            return false;   
      }   
      return true;   
}   
    
//計算字符串的長度(字節個數)

// str.length:字符個數;這里說的是字符串中字節的個數,例如中為占2個字節

function strlen(str){   
      var len;   
      var i;   
      len = 0;   
      for (i=0;i<str.length;i++){   
            if (str.charCodeAt(i)>255) len+=2; else len++;   
      }   
      return len;   
}   
    
//檢查是否是特殊字符(ASCII碼的值大於255)   
function strlen2(str){   
      var len;   
      var i;   
      len = 0;   
      for (i=0;i<str.length;i++){   
            if (str.charCodeAt(i)>255) return true;   
      }   
      return false;   
}   
    
//檢查是否有空格(包括空格、tab鍵、換行、回車)   
function isWhiteSpace (s)   
{   
      var whitespace = " \t\n\r";   
      var i;   
      for (i = 0; i < s.length; i++){     
            var c = s.charAt(i);   
            if (whitespace.indexOf(c) >= 0) { 
            // str.indexOf(subStr) 返回str中第一次出現子串subStr的位置 

                  return true;   
            }   
      }   
      return false;   
}   
    
//檢查是否是特殊字符   
function isSsnString (ssn)   
{   
      var re=/^[0-9a-z][\w-.]*[0-9a-z]$/i;   
      // 請注意加^$,否則只要子串匹配了就會返回true; i表示忽略大小寫 

      if(re.test(ssn)) 

      // RegExpObject.test(string) 如果字符串 string 中含有與 RegExpObject 匹配的文本,則返回 true,否則返回 false。調用 RegExp 對象 r 的 test() 方法,並為它傳遞字符串 s,與這個表示式是等價的:(r.exec(s) != null)。 
            return true;   
      else   
            return false;   
}   
    
function checkssn(gotoURL) {   
   var ssn=form.username.value.toLowerCase();   
   if (checkUserName(ssn)){   
         var open_url = gotoURL + "?username=" + ssn;   
         window.open(open_url,'','status=0,directories=0,resizable=0,toolbar=0,location=0,scrollbars=0, 
width=322,height=200');   
      }   


一下是部分html代碼
<html>
<head><title>表單</title>
<script type="text/javascript" src="script/regcheckdata.js">
</script>
</head>
<body>
<form name="form" action="01.html" method="get" onsubmit="return checkdata()">
<table width="750" align="center" border="2">
<tr>
<th colspan="2" align="center">用戶注冊</th>
</tr>
<tr>
<td>用戶名:</td>
<td>
<input type="text" name="username" size="30" maxlength="10">
</td>
</tr>
<tr>
<td>密碼:</td>
<td>
<input type="text" name="pwd" size="15" maxlength="12">
</td>
</tr>
<tr>
<td>密碼確認:</td>
<td>
<input type="test" name="pwd2" size="15" maxlength="12">
</td>
</tr>

1 个解决方案

#1


<tr>
<td>密碼確認:</td>
<td>
<input type="test" name="pwd2" size="15" maxlength="12">
</td>
</tr>

type="text".另外密碼應該是type="password"才對

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com