- Home
- Categorie
- Coding e Sistemistica
- HTML e CSS
- [js] Verifica campi form (select) tramite js
-
[js] Verifica campi form (select) tramite js
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.
-
Da qui non si capisce, ma il controllo lo devi fare dall'evento onSubmit del form.
Nel caso vada tutto bene ritorni true, nel caso in invece contrario devi dare return false.
-
Ho già risolto così:
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.Grazie lo stesso e buonanotte