Asp.net(Ajax)表单验证 函数包

/**********************************************************************************
 *
 * 功能说明:JS表单验证函数库
 * 作者: 刘功勋;
 * 版本:V0.1(JavaScript);时间:2006-7-27
 * 注意:文件为js文件,使用时,<script language="javascript" src="*.js"></script>
 * *******************************************************************************/

/********************************************************************************
 * 函数名称:resultRemain
 * 功能说明:根据传递值,改变表单提示状态
 * 参    数:id:表单span ID号;str:提示文字;CssClassName:改变提示颜色的CSS Style Class名称
 
*********************************************************************************/
function resultRemain(id,stype,str,CssClassName)

      switch (stype) {
            //默认          
      case "normal" :
          {
              eval("span_"+id).className=CssClassName;    
           break;
       }
         //正确
      case "right" :
          {        
           eval("span_"+id).innerHTML=str;
           eval("span_"+id).className=CssClassName;          
           break;
       }
      //错误
      case "error":
        {                                
         eval("span_"+id).className=CssClassName;
         eval("error_"+id).innerHTML=str;                                
         break;
            }
      //获得焦点
      case "focus":      
      {
        eval("span_"+id).innerHTML=str;
        eval("span_"+id).className=CssClassName;        
      }
      default :
       break;
     }
}

/********************************************************************************
 * 函数名称:onFocusForm
 * 功能说明:密码输入框获得焦点时显示提示状态
 * 参    数:o:表单对象
 * 调用方式:表单控件名称.Attributes["onfocus"] = "return onFocusPwd(this);";  //(Asp.net)
*********************************************************************************/
function onFocusForm(o,str)
{
    if(o){    
        resultRemain(o.id,"focus",str,"formonfocus");
    
    }
}


/********************************************************************************
 * 函数名称:onCheckPwd
 * 功能说明:当表单失去焦点时,触发相应的密码检测
 * 参    数:o:表单对象
 * 调用方式:表单名称.Attributes["onfocus"] = "return onFocusPwd(this);";  //(Asp.net)
*********************************************************************************/
function onCheckPwd(o){    
    var p = o.value;   
    if(p){
        //测试密码长度,包括汉字密码
     var len = 0;
     var ary = escape(p).match(/(%u[0123456789ABCDEF]{4})+/g);
     if(ary){
      len = unescape(ary.join("")).length * 2;
      p = unescape(escape(str).replace(/(%u[0123456789ABCDEF]{4})+/g,""));
      len += p.length;
     }else{
      len = p.length;
     }   
     if(len < 6 || len > 20){
          resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 密码有误</span> ","formerr"); 
       return false;           
           
        }else{
          resultRemain(o.id,"right","填写正确 ","formnormal");  
          return true;             
       }
    }else{
        resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 密码不能为空</span> ","formerr");
        return false;     
    }
};

/**********************************************************************************
 * 函数名称:strlen
 * 功能说明:检测字符串长度
 * 参    数:o:表单对象;len:字符串长度
 * 调用方式:表单名称.Attributes["onblur"] = "return strlen(this,30);"; //(Asp.net)
***********************************************************************************/

function strlen(o,len)
{
    var p = o.value;   
    if(p)
    {
        var l=p.length;
        if(l>len)
            {
             resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 字符超过长度</span> ","formerr");
             return false; 
           }
        else
             resultRemain(o.id,"right","填写正确 ","formnormal");
             return true;
    }
    else
    {
        resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 资料不能为空</span> ","formerr");
        return false; 
    }
}

/**********************************************************************************
 * 函数名称:onCheckPostCode(o)
 * 功能说明:检测邮编是否合法
 * 参    数:o:表单对象;
 * 调用方式:表单名称.Attributes["onblur"] = "return onCheckPostCode(this);"; //(Asp.net)
***********************************************************************************/
function onCheckPostCode(o){
    var str = o.value;
    if(str){
        var pattern = /^\d{6}$/;
  if(!pattern.test(str))
        {
            resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 邮编输入不合法</span> ","formerr");          
            return false;
        }else{
            resultRemain(o.id,"right","填写正确 ","formnormal");
            return true;
        }
    }else{
            resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 邮编不能为空</span> ","formerr");
           return false; 
        }
}

/**********************************************************************************
 * 函数名称:onCheckTel(o)
 * 功能说明:检测电话号码是否合法或传真
 * 参    数:o:表单对象;
 * 调用方式:表单名称.Attributes["onblur"] = "return onCheckPostCode(this);"; //(Asp.net)
***********************************************************************************/
function onCheckTel(o){
    var str = o.value;
    if(str){
        var pattern = /^((\d{3,4}-?\d{7,8})|(\d{7,8}))$/;
  if(!pattern.test(str))
        {
              resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 号码格式不合法</span> ","formerr");           
            return false;
        }else{
            resultRemain(o.id,"right","填写正确 ","formnormal");
            return true;
        }
    }else{
              resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 号码不能为空</span> ","formerr");
              return false;
        }
}

/**********************************************************************************
 * 函数名称:onCheckMobile(o)
 * 功能说明:检测手机号码是否合法
 * 参    数:o:表单对象;
 * 调用方式:表单名称.Attributes["onblur"] = "return onCheckMobile(this);"; //(Asp.net)
***********************************************************************************/
function onCheckMobile(o){
    var str = o.value;
    if(str){
        var pattern = /^(0?13\d{9})$/;
  if(!pattern.test(str))
        {
            resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 手机号码输入不合法</span> ","formerr");         
            return false;
        }else{
          resultRemain(o.id,"right","填写正确 ","formnormal");
          return true;
        }
    }else{
             resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 手机号码不能为空</span> ","formerr");
             return false;
        }
}

/**********************************************************************************
 * 函数名称:onCheckEmail(o)
 * 功能说明:检测E-mail是否合法
 * 参    数:o:表单对象;
 * 调用方式:表单名称.Attributes["onblur"] = "return onCheckEmail(this);"; //(Asp.net)
***********************************************************************************/
function onCheckEmail(o){
    var em = o.value;
    if(em){
        var pattern = /^(\w|_|\.)+@((\w|_|\-)+\.)+(\w){2,3}$/;
     if(!pattern.test(em))
     {
          resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> E-mail输入不合法</span> ","formerr");       
         return false;  
       }  
     else{
            resultRemain(o.id,"right","填写正确 ","formnormal");
            return true;
        }
 }else{
      resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> E-mail不能为空</span> ","formerr"); 
      return false;   
 }
}

/**********************************************************************************
 * 函数名称:ipcheck(o)
 * 功能说明:检测IP地址是否合法
 * 参    数:o:表单对象;
 * 调用方式:表单名称.Attributes["onblur"] = "return ipcheck(this);"; //(Asp.net)
***********************************************************************************/
function ipcheck(o){   
    var ipstr=o.value;
    if(ipstr){
         var reg = /^((\d{1,3})(\.\d{1,3}){3})$/;
         if(reg.test(ipstr))
         {
            var ary = ipstr.split('.');
            for(key in ary)
      {
                if(parseInt(ary[key]) > 255)
       {
            resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" />IP输入不合法</span> ","formerr");  
           return false;
       }
            }
             resultRemain(o.id,"right","填写正确 ","formnormal");
              return true;
         }
         else
         {
           resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" />IP输入不合法</span> ","formerr");
            return false;  
         }
    }
    else
    {
        resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> IP不能为空</span> ","formerr");  
         return false;
    }
}

/**********************************************************************************
 * 函数名称:checkNum(o)
 * 功能说明:检测是否为纯数字
 * 参    数:o:表单对象;
 * 调用方式:表单名称.Attributes["onblur"] = "return checkNum(this);"; //(Asp.net)
***********************************************************************************/
function checkNum(o)
{
    var str=o.value;
    if(str)
    {
         var reg =/\D/;
          if(!reg.test(str))
          {
             resultRemain(o.id,"right","填写正确 ","formnormal");
              return true;
          }
          else
          {
             resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 起始标识应为纯数字!</span> ","formerr");
             return false;
          }        
    }
    else
    {
       resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 起始标识不能为空</span> ","formerr"); 
       return false;  
    }
}

/**********************************************************************************
 * 函数名称:checkchinese(o)
 * 功能说明:检测是否为中文字符
 * 参    数:o:表单对象;
 * 调用方式:表单名称.Attributes["onblur"] = "return checkchinese(this);"; //(Asp.net)
***********************************************************************************/
function checkchinese(o)
{
    var str=o.value;
    if(str)
    {
         var reg =/[\u0391-\uFFE5]/gi;
          if(!reg.test(str))
          {
             resultRemain(o.id,"right","填写正确 ","formnormal");
             return true;
          }
          else
          {
             resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 含有中文字符!</span> ","formerr");
              return false;
          }        
    }
    else
    {
       resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 不能为空</span> ","formerr"); 
      return false; 
    }
}

/**********************************************************************************
 * 函数名称: CheckUid(o)
 * 功能说明:检测用户名是否合法,暂没做ajax检测
 * 参    数:o:表单对象;
 * 调用方式:表单名称.Attributes["onblur"] = "return CheckUid(this);"; //(Asp.net)
***********************************************************************************/
function CheckUid(o){
    var u = o.value;
    if(u){
        if(u.length < 4 || u.length > 20)
        {
            resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 用户名长度需在4-20之间!</span> ","formerr");
            return false;
        }
    }else{
         resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 用户名不能为空!</span> ","formerr");
        return false;
    }
    var pattern = /^([a-zA-Z0-9]|[\u4E00-\uFA2D])+$/;
    if(!pattern.test(u))
    {
         resultRemain(o.id,"error","<span style=\"color:#FF0000;\"><img src=\"/skin/main/images/icon_note.gif\" align=\"absmiddle\" /> 用户名包含非法字符!</span> ","formerr");
        return false;
    }
    else
    {
        resultRemain(o.id,"right","填写正确 ","formnormal");
        return true;
    }
   
//    if(u == o1.value && u != ""){
//        RegStyle(o.id,"right","此用户名可以使用");
//        return false;
//     }
//    var flag = LoadXml(HostName + "/CallPage/Query.aspx?op=QueryUid&s=" + o.value);
//    if(flag == 'False'){
//        RegStyle(o.id,"right","此用户名可以使用");
//        o1.value = u;
//    }else{
//        RegStyle(o.id,"error","这个用户名已被注册");
//        return false;
//    }
}

 

表单提交时,验证全部表单的例子:

function RegForm()
{

    var falsestr="";
    //检测密码
  if(!onCheckPwd(Form1.tb_u_password))   
       falsestr +="false|";
  if(!onCheckPwd(Form1.tb_u_password2))   
       falsestr +="false|";
  if(Form1.tb_u_password.value !=Form1.tb_u_password2.value)
       falsestr +="false|";
  if(!onCheckEmail(Form1.tb_email))   
       falsestr +="false|";
  if(!onCheckTel(Form1.tb_tel))   
       falsestr +="false|";
 // if(!onCheckMobile(Form1.tb_mobile))   
   //    falsestr +="false|";
  if(!CheckUid(Form1.tb_name))   
       falsestr +="false|";         
 
   //当falsestr中,包含false中,则返回false
  if(falsestr.length>=5)
  {
 alert('表单中,有不符合规定的字符');  
       return false; 
   }
    else
        return true; 
           
}

posted @ 2008-10-04 02:04  scgw  阅读(304)  评论(0编辑  收藏  举报