Salve ho il seguente problemino:
ho 1 FORM(occhio solo un form) che in partenza non è visibile, con due link scelta1 e scelta2 ad esempio.
al click su uno dei due link compaiono solo i campi che desidero, il tutto cambiando la
proprietà display del css, i campi di scelta1 compaiono e quelli di scelta2 scompaiono e
viceversa a seconda del parametro passato alla funzione(che non posto qui, lavora semplicemente sulla proprietà display cambiandola da none a block e viceversa).
Al cambio di visualizzazione corrisponde il cambio di un campo hidden: tipologia che fa da interruttore 0 o 1;
Fino a qui tutto semplice, il problema è con la validazione con validate plug-in di jquery,
se dovessi validarli tutti non ci sarebbero problemi di sorta, ma a seconda della scelta effettuata ne devo validare solo alcuni....
ECCO LA VALIDAZIONE(ristretta per l'occorrenza):
function validate_form(){
$.validator.setDefaults({
submitHandler: function() { $('#regform').submit(); }
});
if($('#tipologia').val() == 1){
//interruttore tipologia cambiato dalla funzione che si occupa della validazione
$("#regform").validate({
rules: {
cognome: "required",
nome: "required",
},
messages: {
cognome: "Il cognome è un campo obbligatorio",
nome: "Il nome è un campo obbligatorio",
}
});
}else{
$("#regform").validate({
rules: {
cognome2: "required",
nome2: "required",*/
},
messages: {
cognome2: "Il cognome è un campo obbligatorio",
nome2: "Il nome è un campo obbligatorio",*/
}
});
}
}
adesso il controllo su tipologia sembra funzionare, quando faccio click sul pulsante che mostra
il primo o il secondo insieme di campi, il form viene correttamente validato spedito ecc...
IL GROSSO PROBLEMA E' CHE LO SCRIPT SI IMPALLA FACENDO APPARIRE UNA POPUP CHE MI CHIEDE SE FERMARLO O NO! SIA CON IE CHE CON FF quindi credo che il problema sia proprio la scelta condizionale delle rules, al momento non posso dividere i form, senza lavoraci sopra parecchio, sicuramente c'è qualcosa di sbagliato alla base della scelta tra una validazione o un'altra sullo stesso form...
CHE NE DITE?
grie in anticipo per ogni eventuale risposta