validazione input tipo radio

radioButton

Utente Attivo
26 Dic 2013
35
0
6
Arezzo
Ciao a tutti.
Per validare i campi di un form di registrazione ho scritto il file.js che riporto qua sotto.

Codice:
$(document).ready(function(){
 
 $.validator.addMethod("username_regex", function(value, element) {
  return this.optional(element) || /^[a-z0-9\.\-_]{4,30}$/i.test(value);
 }, "Please choise a username with only a-z 0-9.");

 $("#registra").validate({
  rules:{
	 'username':{
		     required: true,
		     minlength: 4,
		     username_regex: true,
		     remote:{
			     url: "../ajax/validatorAJAX_reg.php",
			     type: "post"
			    }
		    },
	 'email':{
		  required: true,
		  email: true,
		  remote:{
	                  url: "../ajax/validatorAJAX_reg.php",
			  type: "post"
			 }
		 },
         'privacy':{
		    required: true
                        
		   }
        },
 messages:{
	   'username':{
		       required: "Il campo username &egrave obbligatorio!",
		       minlength: "Scegli un username di almeno 4 lettere!",
		       username_regex: "Sono consentiti solo lettere, numeri ed i simboli .-_!",
		       remote: "L'username &egrave gi&agrave utilizzato da un altro utente!"
		      },
	   'email':{
		    required: "Il campo email &egrave obbligatorio!",
		    email: "Inserisci un valido indirizzo email!",
		    remote: "Esiste gi&agrave una registrazione per questo indirizo email!"
		   },
           'privacy':{
		      required: "Per poterti registrare devi effettuare una scelta."
                     }       
          }
 });

})

Tutto funziona correttanmente ed, in particolare, se non seleziono nessuno dei due input radio che hanno nome privacy (non sto a postare il file php corrispondente per contenere gli spazi ma se è utile per capirci richiedetemelo e lo farò) mi compare correttamente il messaggio di errore che scompare non appena effettuo una selezione.

Il problema invece nasce quando imposto di default un input radio selezionato ('checked') e voglio che la validazione abbia effetto positivo solo quando l'altro è selezionato. In sostanza ho due tipi di scelta ossia ACCETTO e NON ACCETTO;
la scelta "NON ACCETTO" è selezionata di default ed io vorrei che non comparisse messaggio di errore solo se al momento dell'invio dei dati ('submit') è selezionato 'ACCETTO'. Che tipo di regola devo usare?

Spero di essermi spiegato in maniera sufficientemente chiara.

Grazie a chi presterà attenzione alla mia richiesta.

Ciao.
 
Ciao, non conosco il plugin che stai usando
in puro javascript io farei cosi
HTML:
<script type="text/javascript">
    function check_privacy(campo) {
        if (campo.value == 'no') {
            document.getElementById('invia').disabled = true;
        } else {
            document.getElementById('invia').disabled = false;
        }
    }
</script>
<form method="post" action="">
    <p>Condizioni sulla privacy : </p>
    <textarea rows="3" cols="52" disabled="disabled">
    I dati personali saranno utilizzati da parte ..... etc etc
    </textarea>
    <p>
        Accetto <input onclick='check_privacy(this)' type="radio" name="privacy" value="si"/>  
        Non accetto <input onclick='check_privacy(this)' type="radio" name="privacy" value="no" checked="checked"/>

        <input disabled="disabled" type="submit" id="invia" name="invia" value="Invia"/>
    </p>
</form>
 

Discussioni simili