>  기사  >  웹 프론트엔드  >  JQuery는 페이지 요소 데이터 유효성 검사 function_jquery를 쉽게 구현합니다.

JQuery는 페이지 요소 데이터 유효성 검사 function_jquery를 쉽게 구현합니다.

WBOY
WBOY원래의
2016-05-16 19:16:17991검색

ASP.NET은 다양한 데이터 유효성 검사 컨트롤을 제공하지만 이 유효성 검사 기능은 서버 컨트롤에서 사용해야 합니다. 유효성 검사 데이터를 합성할 때 사용하는 것은 그리 편리하지 않습니다. and-drops 및 관련 속성 설정이 매우 번거로워집니다. 검증 기능을 보다 편리하고 유연하게 구현하기 위해 JQuery를 사용하여 간단한 검증 컴포넌트를 작성했습니다. 이를 사용할 때 검증 규칙을 간략하게 설명하면 되며, 기능 구현을 위해 JavaScript를 작성할 필요는 없습니다. ASP.NET 확인 컨트롤(물론 페이지에 관련 JavaScript 파일이 포함되어야 함)
기능적 목표
간단한 사용자 정의 속성 값을 통해 특정 검증 기능을 설명하고, Form이 제출되면 검증 기능을 자동으로 차단하고 실행합니다. 모든 회원이 성공적으로 확인되면 제출하고, 그렇지 않으면 제출을 취소하세요.
간단한 사용 설명:
"Text1" type="text" validator="type:string;nonnull:true;tip:사용자 이름을 입력하세요!;tipcontrol:nametip" /> date;nonnull:true;tip:올바른 생년월일을 입력해주세요!;tipcontrol:birthtip;min:1950-1-1;max:2000-1-1" />

경고 및 사용자 정의 영역을 통해 오류 정보를 표시합니다.
특정 JavaScript 코드
구현 코드는 복잡하지 않으며 관련 코드가 비교적 간단하므로 주석을 작성하지 않습니다.



코드 복사


코드는 다음과 같습니다.

// JScript 文件 
// 
//type:int|number|date|string 
//nonnull:true|false 
//regex:^[- ]?d $ 
//min:0 
/ /max:999999999 
//campare:id 
//comparetype:eq,neq,leq,req,le,ri 
//tipcontrol: 
//tip: 
//< ;/검증기> 
var ErrorMessage; 
함수 FormValidate(양식) 

    ErrorMessage=''; 
    var 합법성, 항목; 
    합법성 = 사실; 
    항목 = $(form).find("input[@validator]"); 
    for(var i =0;i< items.length;i ) 
    { 
       if(합법성) 
       { 
           합법성 = OnItemValidator($(items[i])); 
       } 
       else 
       { 
            OnItemValidator($(items[i]));     
       } 
    } 
    항목 = $(form).find("textarea[@validator]"); 
    for(var i =0;i< items.length;i ) 
    { 
       if(합법성) 
       { 
           합법성 = OnItemValidator($(items[i])); 
       } 
       else 
       { 
            OnItemValidator($(items[i]));     
       } 
    } 
    항목 = $(form).find("select[@validator]"); 
    for(var i =0;i< items.length;i ) 
    { 
       if(합법성) 
       { 
           합법성 = OnItemValidator($(items[i])); 
       } 
       else 
       { 
            OnItemValidator($(items[i]));     
       } 
    } 
    if(!legality) 
    { 
        if(ErrorMessage !='') 
            alert(ErrorMessage); 
    } 
    반품 합법성; 

함수 CreateValObject(검증기) 

    var valobj = {  type:'string', 
                 nonnull:false, 
                  regex :null, 
                   최소:null,
                  최대:null, 
                 campare:null,
                  비교 유형: null, 
                   tipcontrol:null, 
                   tip:null}; 
    var 속성; 
    var 실행; 
    var namevalue; 
    속성 = validator.split(';'); 
    for(i=0;i    { 
        namevalue = properties[i].split(':'); 
        ="valobj."를 실행합니다.   이름값[0]  '=''  이름값[1] '';'; 
        평가(실행); 
    } 
    valobj 반환; 

함수 OnItemValidator(control) 

    var regex,maxvalue,minvalue,cvalue; 
    var valobj = CreateValObject(control.attr('validator')); 
    var value = control.val(); 
    값 = ValidatorConvert(value,valobj.type); 
    if(valobj.nonnull=="true") 
    { 
        if(value == null || value=="") 
        { 
            ValidatorError(valobj); 
            false를 반환합니다. 
        } 
    } 
    else 
    { 
        if(value == null || value=="") 
            return true; 
    } 
    if(valobj.regex != null) 
    { 
        regex =new RegExp(valobj.regex); 
        if(value.match(regex) == null) 
        { 
            ValidatorError(valobj); 
            false를 반환합니다. 
        } 
    } 
    if(valobj.min != null) 
    { 
        minvalue = ValidatorConvert(valobj.min,valobj.type); 
        if(!CompareValue(value,minvalue,"req")) 
        { 
            ValidatorError(valobj); 
            false를 반환합니다. 
        } 
    } 
    if(valobj.max != null) 
    { 
        maxvalue = ValidatorConvert(valobj.max,valobj.type); 
        if(!CompareValue(value,maxvalue,"leq")) 
        { 
            ValidatorError(valobj); 
            false를 반환합니다. 
        } 
    } 
    if(valobj.campare != null) 
    { 
        cvalue = $('#'   valobj.campare).val(); 
        cvalue = ValidatorConvert(cvalue,valobj.type); 
        if(!CompareValue(value,cvalue,valobj.comparetype)) 
        { 
           ValidatorError(valobj); 
            false를 반환합니다. 
        } 
    } 
    true를 반환합니다. 

함수 ValidatorError(valobj) 

    if(valobj.tipcontrol != null) 
        showTip($("#"  valobj.tipcontrol)); 
    else 
    { 
        if(ErrorMessage !='') 
            ErrorMessage  = 'n'; 
        ErrorMessage  = valobj.tip; 
    } 

함수 CompareValue(leftvalue,rightvalue,compareType) 

    if(leftvalue == null || rightvalue == null) 
        return false; 
    if(compareType=="eq") 
    { 
        return leftvalue == rightvalue; 
    } 
    else if(compareType =="neq") 
    { 
        return leftvalue != rightvalue; 
    } 
    else if(compareType =="le") 
    { 
        return leftvalue < 올바른 값; 
    } 
    else if(compareType =="leq") 
    { 
        return leftvalue <= rightvalue; 
    } 
    else if(compareType =="ri") 
    { 
        return leftvalue > 올바른 값; 
    } 
    else if(compareType =="req") 
    { 
        return leftvalue >= rightvalue; 
    } 
    else 
    { 
        false를 반환; 
    } 

함수 showTip(control) 

    if(control.attr('show') != 'on') 
    { 
        control.fadeIn( "느린"); 
        control.attr('show','on'); 
    } 

function hideTip(control) 

    control.hide(); 
    control.attr('show',''); 

함수 ValidatorConvert(value, dataType) { 
    var num,exp,m; 
    var 년, 월, 일 
    if(value == null || value =="") 
        return null; 
    if(dataType=="int") 
    { 
        exp=/^[- ]?d $/; 
        if (value.match(exp) == null) 
            null을 반환합니다. 
        num = parseInt(value, 10); 
        return(isNaN(num) ? null : num); 
    } 
    else if(dataType =="number") 
    { 
        exp=/^[- ]?((d )|(d .d ))$/; 
        if (value.match(exp) == null) 
            null을 반환합니다. 
        num = parseFloat(value); 
        return (isNaN(num) ? null : num); 
    } 
    else if(dataType =="date") 
    { 
        exp=/^(d{4})([-/]?)(d{1,2})([-/]?)(d{1,2})$/ 
        m = value.match(exp); 
        if (m == null) 
        { 
            exp=/^(d{1,2})([-/]?)(d{1,2})([-/]? )(d{4})$/ 
            m = value.match(exp); 
            if(m== null) 
               null을 반환; 
            년 = m[5]; 
            월 = m[1]; 
            일 =m[3]; 
        } 
        else 
        { 
            년 = m[1]; 
            월 =m[3]; 
            일 = m[5]; 
        } 
        시도해 보세요 
        { 
            num = 새 날짜(년, 월, 일); 
        } 
        catch(e) 
        { 
            return null; 
        } 
        반환 번호; 
    } 
    else 
    { 
        return value.toString(); 
    } 

$(document).ready( 
    function(){ 
        $("[@validator]").each(function(i) 
                   { 
>      { 
                          $('#'   valobj.tipcontrol).addClass( 'ErrorTip'); 
                         hideTip($('#'   valobj.tipcontrol)); 
                       $("#"  valobj.tipcontrol).html("" valobj.tip "                       } 
                      $(this).change(function(){ 
                      if(OnItemValidator($(this))) 
            > hideTip($('#'   valobj.tipcontrol));   
                           } 
                        } 
                        else 
                         { 
                          if(valobj.tipcontrol !=null) 
                              { 
                                showTip( $('#'  valobj.tipcontrol));   
                            } 
                      } 
                     }); 
                    } 
                ); 
         $("form").each(function(id) 
            { 
              $(this).submit(function(){return FormValidate(this)}); 
           } >            ) ; 
    } 
); 




下载상关例程代码
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.