Determinar si la página es válida en JavaScript - ASP.NET

80

¿Cuál es la mejor manera de determinar si un formulario en una página ASPX es válido en JavaScript?

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

Michael Kniskern
fuente

Respuestas:

173

Si tengo una página que usa un montón de controles de validación ASP.NET, usaré un código similar al siguiente para validar la página. Haga la llamada en un envío de entrada. ¡Esperamos que este código de muestra te ayude a empezar!

    <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>
aherrick
fuente
2
Responde y lee la siguiente publicación: velocityreviews.com/forums/ ... me ayudó a resolver mi problema.
Michael Kniskern
1
¿Cómo podría modificar el código anterior si tengo varios grupos de validación en la página y solo necesito verificar si un solo grupo es válido?
The Muffin Man
5
Actualización: eliminé la Page_ClientValidate()llamada y funciona :)
The Muffin Man
Consulte también stackoverflow.com/a/3062770/292060 para ver los argumentos de esta llamada y abordar los múltiples grupos de validación.
goodeye
1
Eres tan genial Aherrick. Gracias.
Jonas T
10

Está comprobando Page.IsValiddónde debería comprobar Page_IsValid(es una variable expuesta por los validadores de .NET) :)

Andrea
fuente
Olvidé mencionar que estaba verificando la propiedad Page.IsValid en el lado del servidor que no funcionaba.
Michael Kniskern
3
$("input[id$=Button2]").click(function () {
    var validated = Page_ClientValidate('repo');
    if (validated) {
        // JavaScript code.
    }
});
Agrawars
fuente
1

Establezca la ValidationGrouppropiedad para cada asp.netcontrol de validación en su página, debe proporcionar el mismo nombre ValidationGroupen 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 eso, 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
}
}
Biby Augustine
fuente