web-dev-qa-db-fra.com

Déterminer si la page est valide en JavaScript - ASP.NET

Quel est le meilleur moyen de déterminer si un formulaire sur une page ASPX est valide en JavaScript?

J'essaie de vérifier la validation d'un contrôle utilisateur qui a été ouvert à l'aide de JavaScript window.showModalDialog() et en vérifiant que la propriété 'Page.IsValid' côté serveur ne fonctionne pas. J'utilise les contrôles de validation ASP.NET pour la validation de page.

76
Michael Kniskern

Si j'ai une page qui utilise un tas de contrôles de validation ASP.NET, j'utiliserai un code similaire au suivant pour valider la page. Effectuez l'appel sur une entrée soumise. Espérons que cet exemple de code vous aidera à démarrer!

    <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>
167
aherrick

Vous vérifiez pour Page.IsValid Où vous devriez rechercher Page_IsValid (C'est une variable exposée par les validateurs .NET) :)

9
Andrea

Les contrôles de validation ASP.NET exposent une API côté client que vous pouvez utiliser avec javascript: http://msdn.Microsoft.com/en-us/library/aa479045.aspx

Vous devriez pouvoir vérifier l'objet Page_IsValid pour voir si l'un des contrôles de validation n'est pas valide.

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

Vous pouvez utiliser jQuery et le plugin Validation pour effectuer la validation côté client. Cela fonctionnera avec les balises HTML et les contrôles serveur asp.net. Phil Haack a un bon exemple de projet qui vous montrera les bases.

Cette SO question présente également un examen approfondi de cette approche.

1
David Robbins

Définissez la propriété ValidationGroup pour chaque contrôle de validation asp.net De votre page. Vous devez fournir le même nom à ValidationGroup dans une page.

Par exemple:

<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>

Après cela, dans votre appel javascript comme Page_ClientValidate("ValidationGroup")

Par exemple:

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