Wie nennen RequiredFieldValidator auf dem client vor dem postback

Habe ich geerbt, einige code, bricht eine Seite in tabs mit divs. Auf der ersten Seite gibt es viele erforderlichen Feld-und regex-Prüfungen. Das problem ist, kann ein Benutzer auf einen anderen Reiter wechseln, auslösen eines Postbacks und nicht die Prüfungen auf der ersten Seite, dass die Dinge in einem Durcheinander.

Was ich im Stande sein will zu tun ist, führen Sie die Validierung auf der ersten Seite als ein Benutzer wählt einen anderen tab, so dass Sie verschieben, um einen neuen tab, bis die erste Seite gültig ist.

<ul>                        
     <li><a href="#tab1">Tab 1</a> </li>
     <li><a href="#tab2" onclick="return isValid();">Tab 2</a></li> 
     <li><a href="#tab3" onclick="return isValid();">Tab 3</a></li> 
</ul>

Wo isValid muss das Feuer aus den Prüfungen.

Dank!

UPDATE: Die Antwort codeka ist ziemlich nah, allerdings, weil ich muss beide href und onclick-Attribute (um zu vermeiden, messing-up-display), die Registerkarte (Anker -) Schalter noch stattfindet, selbst wenn die Validierung fehlschlägt. Hier ist, wie ich dies Problem gelöst. disclaimer: ugly code vor

<ul>                        
    <li><a id="tab1Tab" href="#tab1" style="display:none"/><a onclick="isValid('tab1');">Tab 1</a></li>
    <li><a id="tab2Tab" href="#tab2" style="display:none"/><a onclick="isValid('tab2');">Tab 2</a></li>
    <li><a id="tab3Tab" href="#tab3" style="display:none"/><a onclick="isValid('tab3');">Tab 3</a></li>
</ul>

function isValid(tab) {
    var valid = Page_ClientValidate();
    var tabId = (valid ? tab : "tab1") + "Tab";
    $("#" + tabId).click();
}

Beachten Sie die Verwendung von jQuery für cross-browser-Kompatibilität mit dem click-Ereignis. Und das funktioniert nur, wenn es keine Prüfungen, die auf anderen Registerkarten, wie pro Thomas' Antwort, werde ich brauchen, um die Validierung verwenden, Gruppen und zusätzliche Logik in isValid wenn jeder Hinzugefügt.

InformationsquelleAutor si618 | 2010-03-22
Schreibe einen Kommentar