Verifica campi form (select) tramite js

  • Creatore Discussione Creatore Discussione Eugene
  • Data di inizio Data di inizio

Eugene

Utente Attivo
5 Mag 2005
110
0
16
56
Dagobah
www.yodastudio.com
Buonasera

In un form utilizzo una funzione js per verificare la corretta compilazione dei campi obbligatori.

Sostanzialmente, lo script utilizzato è il seguente:


if (document.nuovoUtente.nome.value=="") {
alert("Inserire il nome.");
document.nuovoUtente.nome.focus()
document.nuovoUtente.nome.select()
document.nuovoUtente.nome.className = "boxHigh";
return false;
} else {
document.nuovoUtente.nome.className = "boxOn";
}


In questo modo, oltre a verificare se il campo in oggetto sia stato compilato o meno, viene effettuata un'altra operazione: nel caso il campo sia vuoto, viene automaticamente selezionato e viene modificata la classe css associata in modo da cambiarne, ad esempio, il colore.
Così facendo il campo da riempire è evidenziato ed anche un deficiente riuscirebbe a trovarlo.

Lo script funziona perfettamente con i normali campi di input, ma le cose cambiano quando si ha a che fare con un select.
Infatti, se un campo select obbligatorio viene lasciato sulla prima selezione (solitamente la dicitura "scegli una voce" o simile) pari a valore nullo (""), viene correttamente attivata la finestra di alert che mi avvisa dell'errore, ma quando clicco sull'ok dell'alert invece che tornare al form viene caricata la pagina (in questo caso php) che invia il form in questione, evento che dovrebbe verificarsi solo in seguito alla corretta compilazione di tutti i campi obbligatori e relativa verifica.

Ribadisco che lo script utilizzato è esattamente lo stesso, solo che con i campi select si presenta il piccolo inconveniente sopra riportato.

Qualcuno è in grado di aiutarmi ad eliminare questo problema?

Grazie.
 
Ecco la soluzione:

if (document.nuovoUtente.nome.selectedIndex =="") {
alert("Inserire il nome.");
document.nuovoUtente.nome.focus()
document.nuovoUtente.nome.className = "boxHigh";
return false;
} else {
document.nuovoUtente.nome.className = "boxOn";
}


trattandosi di un select, devo usare selectedIndex e non value.
Infine, non devo usare il comando select trattandosi per l'appunto di un campo select.

Buonanotte.
 

Discussioni simili