Pergunta

Eu estou usando o plugin jQuery fantástica .validate de Jörn Zaefferer em bassistance

Eu estou usando asp.net, assim que tem uma forma longa, embora a forma é dividido em 3 seções através de um acordeão jQuery com botões para alternar entre os painéis de acordeão.

Eu quero o botão em um painel para o painel validar um campo, mesmo com dois painéis, etc.

Obviamente em qualquer outra tecnologia, eu iria com múltiplas formas e não têm nenhuma dificuldade em tudo, embora eu não possa fazer isso no .net.

I pensar o que eu preciso é quase uma $('#aspnetForm').validate().unbind() ou algo semelhante - no acordeão clique estou pedindo para re-validar a forma, então eu sei que página estou e eu poderia, então, basta configurar novas regras etc.

Eu tentei limpar o $('#aspnetForm').validate().rules('remove') regras embora pareça que eu teria que fazer isso para cada campo, em vez do próprio formulário?

Eu posso postar qualquer exemplos de código necessário, embora o roteiro geral é considerável agora, então eu teria que cavar pedaços fora.

Espero que eu estou fazendo sentido lógico acima - basicamente, um meio de limpar todas as regras para que eu possa criar novos porque eu estou em um painel de acordeão diferente é a solução que eu estou esperando, embora eu sou lutando.

Muito obrigado, Terry

Foi útil?

Solução 2

este é realmente o que eu estava fazendo, e depois de algum trabalho firebug prolongado parece um dos seletores não estava sendo limpo, então as regras erradas estavam sendo carregado.

Agora eles estão resolvidos, cada chamada para .validate tem seu próprio conjunto de regras, e unlick (digamos) o evento .click, eles não parecem ser aditivo tão page1.validate com 3 regras limpa fora todo page2 regras .validate.

Graças à sua entrada embora idrumgood, marcou a sua resposta para dizer obrigado por qualquer entrada.

Cheers, Terry

Outras dicas

Gostaria de tentar ter um conjunto de sinalizador quando qualquer parte do formulário é exibido como

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

Então, em suas regras de validação, torná-los condicional.

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

Do que para cada uma (talvez uma maneira mais eficiente)

Então, em suas regras de validação de fazer algo assim

email: {
         required = is_section_1_displayed;
       }

Assumindo email é, na primeira secção de forma a.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top