¿Cómo puedo restablecer un asp.net control de validación a través de JavaScript? El actual código de ejemplo borra el texto del mensaje de error, pero no restablece el control de validación para el próximo envío del formulario.

var cv= document.getElementById("<%= MyValidationContorl.ClientID %>");
cv.innerHTML = '';

Actualización:

Aquí está el ejemplo de código completo de la forma. Me parece que no puede obtener la validación controla el fuego apagado en otra forma de presentación:

function ClearData() {
    var cv = document.getElementById("<%= MyValidationContorl.ClientID %>");
    cv.innerHTML = '';
}

<html>
   <form>
       <asp:TextBox id="MyTextControl" runat="server" />
       <asp:CustomValidator ID="MyValidationContorl" runat="server" />
       <input type="button" onclick="javascript:ClearCCData(); return false;" runat="server" />
   </form>
</html>
  • ¿Qué entiende usted por reset?
  • Me refiero a habilitar el inicio de un proceso de validación desde el principio.

5 Comentarios

  1. 39

    La página de validación se desencadena cada vez que haces un post, lo que parece ser el problema es que están limpiando el validador de contenido cv.innerHTML = '';, de esta manera su mensaje de validación se pierde para siempre y usted pensará que la validación no es a disparar de nuevo.

    y para @Glennular respuesta, el código no se ocupa de la validador Display de la propiedad, si su conjunto de Dynamic el validador de desactivar el uso de validator.style.display, pero si su conjunto de None o Inline luego validator.style.visibility propiedad se utilizará en su lugar.

    Su mejor uso asp.net ValidatorUpdateDisplay lugar,

    <script type="text/javascript">
        function Page_ClientValidateReset() {
            if (typeof (Page_Validators) != "undefined") {
                for (var i = 0; i < Page_Validators.length; i++) {
                    var validator = Page_Validators[i]; 
                    validator.isvalid = true;
                    ValidatorUpdateDisplay(validator);
                }
            }
        }
    </script>

    Actualización : Restablecer La Validación De Los Resúmenes

    <script type="text/javascript">
    function Page_ValidationSummariesReset(){
        if (typeof(Page_ValidationSummaries) == "undefined")
                return;
        for (var i = 0; i < Page_ValidationSummaries.length; i++)
                Page_ValidationSummaries[i].style.display = "none";
    
    }
    </script>
    • Esta función de javascript funciona muy bien!!!
    • Hola @MK .. su función funciona muy bien .. Se restablece todos los validadores como yo quería, pero no restablecer el resumen de validación. ¿Tienes algún código que pueda hacer ese trabajo? Muchas gracias. Estoy desesperadamente necesitan.
    • He actualizado la respuesta a incluir un reset de validación de resúmenes método.
    • Obras brilliently MK .. gracias +1 de mí.
    • que bien..!!
    • Funciona muy bien, Gracias!

  2. 15

    Este restablece todos los validadores en la validación de todos los grupos.

    <script type="text/javascript">
        Page_ClientValidate('');
    </script>
    • perfecto, exactamente lo que yo necesitaba
    • Si utiliza este método, asegúrese de que usted tiene un ValidationGroup definido para todos los validadores… de lo contrario se activará validadores sin un grupo. Si eres muy perezoso y no quiere definir un grupo de validación para cada elemento, se podría hacer una cadena aleatoria que no se utilice como un grupo de validación así: Page_ClientValidate('reset-all');
    • Cadena vacía echara de todos los validadores.
    • Que no restablecer los validadores. Que incendios de validación en contra de un vacío ValidationGroup, que bien podría estar presente, como @dhsto dice.
    • Hay una diferencia entre Page_ClientValidate() y Page_ClientValidate(«)
    • Sería aún mejor si se pasa una cadena que nunca puede ser un nombre de un grupo de validación (por ejemplo, un GUID). Esto hará que ASP.NET al realizar una validación en un no-existente grupo de validación y por tanto se restablece todos los validadores.

  3. 0

    Tratar el siguiente fragmento de código :

    $("#<%= txtUserSettingsEmailRequiredValidator.ClientID %>").css("display", "none");

    Espero que esto funcionará como a mí me funcionó. 🙂

  4. -1

    Aquí el código para restablecer todos los validadores

    function CleanForm() {
        document.forms[0].reset(); 
    
        for (i = 0; i < Page_Validators.length; i++) {
            Page_Validators[i].style.visibility = 'hidden';
        }
    
        return false;
    }

    o una sola:

    document.getElementById("<%= MyValidationContorl.ClientID %>").style.visibility
     = 'hidden';
    • Este no era útil.
    • oops lo siento señorita lee su objetivo
    • Oculta los controles de validación, pero cuando lo intento de otra forma de presentación no fuego fuera de los controles de validación de nuevo.
  5. -3

    El uso de la Page_Validators[i].style.visibility = 'hidden';
    No trabajo para mí, así yo uso esta línea de código: Page_Validators[i].enabled = false;

    if (sFirstName == "" && sLastName == "") 
        {
    
            alert('Reminder: Please first enter student ID to search for the student information before filling out the rest of the form field values');
            //Disable all require field validation coontrol on the form so the user could continue to use the Lookup student function.
            document.forms[0].reset();
            for (i = 0; i < Page_Validators.length; i++) {
                //Page_Validators[i].style.visibility = 'hidden';
                Page_Validators[i].enabled = false;
            }
            return false;
        }
        else 
        {
            alert('Student Name = ' + sFirstName + ' ' + sLastName);
            document.forms[0].reset();
    
            for (i = 0; i < Page_Validators.length; i++) {
                //Page_Validators[i].style.visibility = 'hidden';
                Page_Validators[i].enabled = true;
            }
            return true;
        }

Dejar respuesta

Please enter your comment!
Please enter your name here