jQuery-Validierung - Änderung "Erforderlich" - Attribut wird basierend auf anderen Felder

Bin ich mit dem jQuery-Validation-plugin (http://docs.jquery.com/Plugins/Validation) auf eine form, die ich Baue. Die form besteht aus 6 fieldsets, die jeweils 3 text-Eingänge für einen E-Mail-Adresse, einen Vornamen und einen Nachnamen. Eine vereinfachte version der markup sollte so Aussehen:

<form id="ref" action="submit.php" method="post">
    <fieldset id="ref_1">
        <input id="ref_1_email" type="text" />
        <input id="ref_1_fname" type="text" />
        <input id="ref_1_lname" type="text" />
    </fieldset>
    <fieldset id="ref_2">
        <input id="ref_2_email" type="text" />
        <input id="ref_2_fname" type="text" />
        <input id="ref_2_lname" type="text" />
    </fieldset>
    <fieldset id="ref_3">
        <input id="ref_3_email" type="text" />
        <input id="ref_3_fname" type="text" />
        <input id="ref_3_lname" type="text" />
    </fieldset>
</form>

und so weiter, bis zu ref_6. Der Benutzer ist jedoch nicht unbedingt notwendig ist, um jedes Feld können Sie nur dann wählen, zu füllen, die Eingänge im inneren fieldset#ref_1 und fieldset#ref_2, und lassen Sie das andere leer. Aber wenn Sie eingeben, zum Beispiel, eine E-Mail für ref_1, einen ersten und letzten Namen für ref_1 erforderlich wäre, auch. Also, was ich tun müssen, ist überprüfen alle 3 Eingänge in einem fieldset. Wenn Sie leer sind, können Sie ignoriert werden, aber wenn einer der Eingänge ist gefüllt, es geht um zwei Nachbarn, die abgeschlossen werden müssen auch. Alle meine versuche waren bisher sehr umständlich (gerade für eine änderung, die auf jedes und dann auswerten, um zu sehen, wenn Sie leer sind...), jede Hilfe wäre sehr, sehr dankbar.

Dank

Update:

Fand ich einen Beitrag mit einem ähnlichen Problem, mit der vorgeschlagenen Lösung:

$('#emailToName2').keyup(function () {
    $('#emailToAddress2').toggleClass('required', $(this).val());
});

Aber das erfordert die obige Logik dupliziert, für jede und jeden ein, das scheint wie overkill zu mir. Was wäre ein dynamischer Ansatz?

Prost!

InformationsquelleAutor AlvinRow | 2009-11-16
Schreibe einen Kommentar