ASP.NET Validation Summary: How to disable validat

2020-07-07 02:49发布

问题:

I want to disable a ASP.NET RequiredFieldValidator with JavaScript. Actually I'm using the following code:

function doSomething() 
{ 
  var myVal = document.getElementById('myValidatorClientID'); 
  ValidatorEnable(myVal, false);  
} 

This disables the validator. But my problem is, that I'm using a ValidationSummary. And this summary shows the validation message, even if I disable the validator.

Can someone tell me, how to disable the validator in the ValidationSummary too?

回答1:

The solution is to add a call to ValidationSummaryOnSubmit() after you disable the validator.

function doSomething()  
{  
    var myVal = document.getElementById('myValidatorClientID');  
    ValidatorEnable(myVal, false);   
    ValidationSummaryOnSubmit();
}

You can find a file called WebUIValidation.js on your development computer, which contains the client side JavaScript functions used by the ASP.NET validation process. The functions are well named and it's generally fairly easy to figure out what each of them do.



回答2:

Maybe you could try setting the EnableClientScript=true; and hide the summary by setting its css display style to none when you disable your validator. The summary is rendered as a div and is hidden when no summary is being displayed.



回答3:

Look at the javascript code generated for the validators on the client side. I believe you'll have to remove the validator spans from the "Page_Validators" array. The element ID will match the Validator ID.

This is just a theory. :) Let us know if it works, because I'm interested.



回答4:

ValidatorEnable() did not work for me but this did

document.getElementById("<%=RequiredFieldValidatorId.ClientID %>").enabled = true;