2009-03-13 3 views
1

Ich habe mehrere Registerkarten, die über Ajax geladen werden, und jeder hat eine Reihe von Validatoren. Ich möchte dem Benutzer ermöglichen Registerkarten nur zu ändern, wenn die Registerkarte gültig istClient-Side Validierung mit Gruppen

ich zu den Validierer eine Validation dachte Einstellung und dann prüfen, für die spezifische Gruppe wie diese, funktionieren würde:

function validatePage(group) { 
    return Page_ClientValidate(group); 
} 

Wenn jedoch Ich rufe die Funktion auf, sie gibt immer wahr zurück. Kann jemand sehen, was ich falsch mache?

prüfe ich es wie dieses

alert(validatePage("presentaciones")); 

Und ich habe einige Validatoren:

// (...) 
<asp:TextBox ValidationGroup="presentaciones" id="txtDescription" runat="server" Text='<%# Eval("Description") %>' MaxLength="50" /> 
<asp:RequiredFieldValidator ID="DescriptionRequiredFieldValidator" runat="server" ControlToValidate="txtDescription" SetFocusOnError="true" ValidationGroup="presentaciones" ErrorMessage="Debe ingresar una descripción" Display="Dynamic" /> 
// (...) 

Antwort

0

Ich habe gemacht Gruppen arbeiten Server-Seite mit Page.Validate(group) aber ich war nicht bewusst, dieser Client getan werden könnte, -Seite. Möglicherweise müssen Sie ein benutzerdefiniertes Validierungssteuerelement implementieren, das den Status jeder Registerkarte überprüft.

0

Meine Vermutung ist, dass die Validierungsskripts nicht verdrahtet sind. In Ihrer Funktion machen Sie eine Warnung ((typeof (Page_Validators) == "undefined")) und sehen Sie, ob es wahr anzeigt. Du hast gesagt, dass du die Tabs über Ajax lädst. Vielleicht möchten Sie sehen, ob das Plazieren eines Validators auf der Seite hilft, die Validierungsskripte zu verkabeln.

Die andere Sache, auf die man achten muss, ist Firefox und Legacy-Rendering-Modus .... Client-Seite funktioniert einfach nicht in diesem Szenario.

0

Dies kann auf der Clientseite erfolgen. Wie folgt aus:

$('.buttonWithSameValidationGroup').bind('click', function() { 
       if (Page_ClientValidate($(this).attr('validationgroup'))) { 
    //do stuff 
    } 
}); 

Manchmal müssen Sie den folgenden serverseitigen Code in der Seite Pre_Render Methode

button1.AddAttributes("validationgriup","group1"); 
hinzufügen