Can you have custom client-side javascript Validation for standard ASP.NET Web Form Validators?

前端 未结 3 1609
时光取名叫无心
时光取名叫无心 2020-12-08 05:27

Can you have custom client-side javascript Validation for standard ASP.NET Web Form Validators?

For instance use a asp:RequiredFieldValidator leave the server side c

3条回答
  •  北荒
    北荒 (楼主)
    2020-12-08 06:08

    Yes I have done so. I used Firebug to find out the Dot.Net JS functions and then hijacked the validator functions

    The following will be applied to all validators and is purely client side. I use it to change the way the ASP.Net validation is displayed, not the way the validation is actually performed. It must be wrapped in a $(document).ready() to ensure that it overwrites the original ASP.net validation.

    /**
     * Re-assigns a couple of the ASP.NET validation JS functions to
     * provide a more flexible approach
     */
    function UpgradeASPNETValidation(){
        // Hi-jack the ASP.NET error display only if required
        if (typeof(Page_ClientValidate) != "undefined") {
            ValidatorUpdateDisplay = NicerValidatorUpdateDisplay;
            AspPage_ClientValidate = Page_ClientValidate;
            Page_ClientValidate = NicerPage_ClientValidate;
       }
    }
    
    /**
     * Extends the classic ASP.NET validation to add a class to the parent span when invalid
     */
    function NicerValidatorUpdateDisplay(val){
        if (val.isvalid){
            // do custom removing
            $(val).fadeOut('slow');
        } else {
            // do custom show
            $(val).fadeIn('slow');
        }
    }
    
    /**
     * Extends classic ASP.NET validation to include parent element styling
     */
    function NicerPage_ClientValidate(validationGroup){
        var valid = AspPage_ClientValidate(validationGroup);
    
        if (!valid){
            // do custom styling etc
            // I added a background colour to the parent object
            $(this).parent().addClass('invalidField');
        }
    }
    

提交回复
热议问题