2009-07-01 19 views
71

¿Cuál es la mejor manera de determinar si un formulario en una página ASPX es válido en JavaScript?Determinar si la página es válida en JavaScript - ASP.NET

Estoy tratando de verificar la validación de un control de usuario que se abrió utilizando JavaScript window.showModalDialog() y no funciona la verificación de la propiedad 'Page.IsValid' en el servidor. Estoy usando controles de validación de ASP.NET para la validación de la página.

Respuesta

159

Si tengo una página que está utilizando un montón de controles de validación ASP.NET voy a utilizar un código similar al siguiente para validar la página. Realice la llamada en un envío de entrada. ¡Con suerte, esta muestra de código lo ayudará a comenzar!

<input type="submit" value="Submit" onclick"ValidatePage();" /> 

    <script type="text/javascript"> 

    function ValidatePage() { 

     if (typeof (Page_ClientValidate) == 'function') { 
      Page_ClientValidate(); 
     } 

     if (Page_IsValid) { 
      // do something 
      alert('Page is valid!');     
     } 
     else { 
      // do something else 
      alert('Page is not valid!'); 
     } 
    } 

</script> 
+2

Usted contesta además de leer el siguiente mensaje: http: //www.velocityreviews .com/forums/t292061-concern-pageclientvalidate-function.html me ayudó a resolver mi problema. –

+1

¿Cómo podría modificar el código anterior si tengo múltiples grupos de validación en la página y solo necesito verificar si un solo grupo es válido? –

+5

Actualización - Me quitó el Page_ClientValidate() '' llamada y funciona :) –

1

Usted puede usar jQuery y el plugin para Validation realizar la validación del lado del cliente. Esto funcionará con las etiquetas html y los controles del servidor asp.net. Phil Haack has a good sample project que le mostrará los conceptos básicos.

Este SO question tiene una revisión en profundidad de este enfoque también.

9

Estás navegando por Page.IsValid donde se debe comprobar para Page_IsValid (que es una variable expuesta por los validadores .NET) :)

+0

Olvidé mencionar que estaba revisando la propiedad Page.IsValid del lado del servidor porque no funcionaba. –

3
$("input[id$=Button2]").click(function() { 
    var validated = Page_ClientValidate('repo'); 
    if (validated) { 
     // JavaScript code. 
    } 
}); 
0

Conjunto ValidationGroup propiedad para cada control asp.net validador en su página , debe proporcionar el mismo nombre al ValidationGroup en una página.

Por ejemplo:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required" ValidationGroup="Validate"></asp:RequiredFieldValidator> 
    <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="RangeValidator" ValidationGroup="Validate"></asp:RangeValidator> 
    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator" ValidationGroup="Validate"></asp:CustomValidator> 

Después de que en su llamada javascript como Page_ClientValidate("ValidationGroup")

Por ejemplo:

function ValidatePage(){ 
if(Page_ClientValidate("Validate")){ //validate using above validation controls group 
     //validation return true section 
} 
else{ 
     //validation return false section 
} 
} 
Cuestiones relacionadas