Forzar validación desde cliente con ASP.NET Webforms

 

Validación de formularios ASP.NET desde javascript Cada vez que tengo que forzar la validación de los datos de un formulario Webforms mediante javascript me veo obligado a preguntarle a Google, ese que todo lo sabe, cómo era el nombre de la función. Cosas de la edad, supongo 😉

Así que, a modo de auto-recordatorio y con la intención de que pueda ser útil a alguien más, ahí va: la función se llama Page_ClientValidate(). Retorna “true” si, una vez evaluados todos los validadores de la página, el valor de los campos es correcto (al menos en cliente; otra cosa son las comprobaciones en servidor, p.e., las definidas en un CustomValidator).

Y como ejemplo de uso, puede valer el siguiente. Se trata de un botón de envío en un formulario donde se compone un correo electrónico:

   1: ...

   2: <asp:Button ID="btnEnviar" runat="server" Text="Enviar mail" 

   3:      OnClick="btnEnviar_Click"

   4:      OnClientClick="return confirmar();"

   5: />

   6: ...

   7:  

   8: <script type="text/javascript">

   9:     function confirmar() {

  10:         if (!Page_ClientValidate())   // Fuerza la validación en cliente

  11:             return false;             

  12:             

  13:         return confirm('¿Seguro que desea realizar el envío?');

  14:     }

  15: </script>

 

Como se puede observar, en el atributo OnClientClick del botón incluye un script en el que se retorna el valor devuelto por la función confirmar. Si el retorno es false, se cancela el Postback, evitando así que se invoque al evento btnEnviar_Click que es el que realiza el envío del mail propiamente dicho.

En el cuerpo de la función confirmar(), en primer lugar, validamos la página; si ésta no supera el proceso, los validadores habrán mostrado sus mensajes de error y retornamos falso, haciendo que se anule el postback. Si la validación es correcta, solicitamos al usuario que confirme la acción y retornamos su decisión.

Publicado en: Variable not found.

2 comentarios sobre “Forzar validación desde cliente con ASP.NET Webforms”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *