Stellen Sie fest, ob die Seite in JavaScript - ASP.NET gültig ist


78

Wie kann am besten festgestellt werden, ob ein Formular auf einer ASPX-Seite in JavaScript gültig ist?

Ich versuche, die Validierung eines Benutzersteuerelements zu überprüfen, das mit JavaScript geöffnet wurde, window.showModalDialog()und die Überprüfung der Eigenschaft 'Page.IsValid' auf der Serverseite funktioniert nicht. Ich verwende ASP.NET-Validierungssteuerelemente für die Seitenvalidierung.

Antworten:


173

Wenn ich eine Seite habe, die eine Reihe von ASP.NET-Validierungssteuerelementen verwendet, verwende ich Code, der dem folgenden ähnlich ist, um die Seite zu validieren. Rufen Sie eine Eingabe an. Hoffentlich können Sie mit diesem Codebeispiel loslegen!

    <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
Sie antworten und lesen den folgenden Beitrag: speedreviews.com/forums/… hat mir geholfen, mein Problem zu lösen.
Michael Kniskern

1
Wie kann ich den obigen Code ändern, wenn ich mehrere Validierungsgruppen auf der Seite habe und nur überprüfen muss, ob eine einzelne Gruppe gültig ist?
Der Muffin-Mann

5
Update - Ich habe den Page_ClientValidate()Anruf entfernt und es funktioniert :)
The Muffin Man

Siehe auch stackoverflow.com/a/3062770/292060 für Argumente zu diesem Aufruf, die sich auf die mehreren Validierungsgruppen beziehen .
Goodeye

1
Du bist so großartig, aherrick. Vielen Dank.
Jonas T

10

Sie prüfen, Page.IsValidwo Sie suchen sollten Page_IsValid(es ist eine Variable, die von den .NET-Validatoren verfügbar gemacht wird) :)


Ich habe vergessen zu erwähnen, dass ich die Page.IsValid-Eigenschaft auf der Serverseite überprüft habe, auf der sie nicht funktioniert hat.
Michael Kniskern

7

Die ASP.NET-Überprüfungssteuerelemente stellen eine clientseitige API bereit, die Sie mit Javascript verwenden können: http://msdn.microsoft.com/en-us/library/aa479045.aspx

Sie sollten in der Lage sein, das Page_IsValid-Objekt zu überprüfen, um festzustellen, ob eines der Validierungssteuerelemente ungültig ist.


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


1

Legen Sie die ValidationGroupEigenschaft für jedes asp.netValidator-Steuerelement auf Ihrer Seite fest. Sie müssen auf ValidationGroupeiner Seite denselben Namen angeben.

Zum Beispiel:

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

Danach in Ihrem Javascript aufrufen wie Page_ClientValidate("ValidationGroup")

Zum Beispiel:

function ValidatePage(){
if(Page_ClientValidate("Validate")){ //validate using above validation controls group
      //validation return true section
}
else{
      //validation return false section
}
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.