Newsgroup: it.comp.lang.javascript
Titolo: [HELP] Validazione form

Salve a tutti!
Premetto che sono una principiante.
Sto un attimino diventando pazza, ho cercato ovunque in internet ma non
riesco a trovare un esempio di codice per la validazione dei campi di un
form.
Io vorrei che la validazione fosse fatta in modo particolare (ma mica tanto
poi, visto che l'ho vista in tanti siti), cioč fatta in modo che se, ad
esempio, non si immette un campo obbligatorio, si viene rimandati alla
stessa pagina (quella del form) con un messaggio che indica quale campo č
stato omesso.
Non č difficilissimo, vero? Avrei solo bisogno di un esempio. Qualcuno sa
indicarmelo, per favore?
Grazie
Banshee

 Non è difficilissimo, vero? Avrei solo bisogno di un esempio.
Massì, perchennò. A te lo scriptino:
<script>
function Valida(f) {
  if (f.nome.value=="") {
  alert("occhio al nome");
  f.nome.focus();
  return false;
  } else if (f.cognome.value=="") {
  alert("occhio al cognome");
  f.cognome.focus();
  return false;
 }
return true
}
</script>
<body>
<form name="foo" method="" action="" onsubmit="return Valida(this)">
<input type="text" name="nome" value=""><p>
<input type="text" name="cognome" value=""><p>
<input type="submit" value="invia"><p>
</form>
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

 stato omesso.
Premesso cio' che ha scritto il buon Catarsi, c'e' da fare un piccolo
approfondimento:
Da come ne parli, tu vorresti fare prima il submit, con relativa richiesta
al server, controllare gli errori, e poi se ve ne sono riproporre la pagina
del form all'utente.
Questo tipo di cose lo fai server side, quindi presuppongo che tu utilizzi
anche tecnologie di quel tipo (ASP,PHP,JSP, CGI in generis).
L'esempio che ti e' gia' stato dato, va bene per un controllo di tipo
formale, e se ti serve solo quello va bene cosi'. Evita tra l'altre cose,
inutili richieste al server.. Come ad esempio, verificare che un campo non
sia vuoto.
Ma se devi fare controlli sulla natura dei dati inseriti, ad esempio devi
verificare che quei dati non siano gia' presenti in un DB, hai bisogno di
un successivo controllo server side.
Se questo e' il tuo caso, allora il discorso cambia. Eventualmente, facci
sapere.
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
You don't have to be crazy to be a webmaster. But it helps.

 un successivo controllo server side.
Il mio caso è abbastanza semplice: un form con 11 campi, quasi tutti
testuali (tranne 1 in cui vorrei controllare l'indirizzo e-mail e un altro
in cui vorrei controllare almeno che un numero di telefono sia numerico) non
tutti obbligatori in cui forse l'unica difficoltà è che ci sono due campi
che si escludono a vicenda (cioè se non compilo uno dei due devo compilare
necessariamente l'altro). Devo, perciò, anche controllare che vengano
immessi dei campi obbligatori.
Per fortuna, non ho un DB, il form serve solo ad inviare una e-mail
all'azienda con una richiesta d'assistenza.


 immessi dei campi obbligatori.
Okay. Se i tuoi controlli sono solo questi, puoi tranquillamente utilizzare
i controlli client-side che ti ha illustrato Catarsi.
La "base" su cui devi muoverti e' essenzialmente quella. Per l'indirizzo
email ed il numero di telefono, puoi utilizzare delle regular expression
(se cerchi su google gruppi, in questo NG, trovi un sacco di esempi).
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
La vita e' una tempesta, ma prenderla nel culo e' un lampo.
(B. Grillo)