Domanda

Sto usando il fantastico plugin jquery .validate di Jörn Zaefferer at bassistance

Sto usando asp.net, quindi ho una forma lunga, sebbene il modulo sia suddiviso in 3 sezioni tramite una fisarmonica jquery con pulsanti per passare da un riquadro di fisarmonica all'altro.

Voglio che il pulsante nel riquadro uno convalidi i campi del riquadro uno, lo stesso con il riquadro due, ecc.

Ovviamente in qualsiasi altra tecnologia, andrei con più moduli e non ho alcuna difficoltà, anche se non posso farlo in .net.

I penso ciò di cui ho bisogno è quasi un $ ('# aspnetForm'). validate (). unbind () o qualcosa di simile - su fisarmonica chiedendo di riconvalidare il modulo, quindi so su quale pagina mi trovo e quindi posso semplicemente impostare nuove regole ecc.

Ho provato a cancellare le regole $ ('# aspnetForm'). validate (). rules ('remove') anche se sembra che dovrei farlo per ogni campo piuttosto che per il modulo stessa?

Posso pubblicare tutti gli esempi di codice necessari, sebbene lo script generale sia ora considerevole, quindi dovrei scavare blocchi.

Spero di avere un senso logico sopra - sostanzialmente, un modo per cancellare tutte le regole in modo da poterne creare di nuove perché sono in un pannello della fisarmonica diverso è la soluzione che spero, anche se sono lottando.

Mille grazie, Terry

È stato utile?

Soluzione 2

questo è davvero quello che stavo facendo, e dopo un lungo lavoro di firebug sembra che uno dei selettori non sia stato cancellato, quindi sono state caricate le regole sbagliate.

Ora vengono risolti, ogni chiamata a .validate ha il proprio set di regole e deseleziona (diciamo) l'evento .click, non sembrano essere additivi quindi page1.validate con 3 regole cancella tutta la pagina2 .validate rules.

Grazie per il tuo contributo anche se idrumgood, contrassegnato la tua risposta per dire grazie per qualsiasi input.

Saluti, Terry

Altri suggerimenti

Proverei a impostare un flag quando qualsiasi parte del modulo viene visualizzata come

<div id="form_section_1" class="displayed">
     ....
</div>
<div id="form_section_2">
     ....
</div>
<div id="form_section_3">
     ....
</div>

Quindi, nelle regole di convalida, renderle condizionali.

if($('#form_section_1').attr('class').search('displayed') != -1){
     var is_section_1_displayed = true;
}
else{ var is_section_1_displayed = false;

Fallo per ognuno (forse un modo più efficiente)

Quindi, nelle regole di convalida, fai qualcosa del tipo

email: {
         required = is_section_1_displayed;
       }

Supponendo che email sia nella prima sezione del modulo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top