Recentemente per validare un form tramite JS comincio ad usare una cosa del genere:
La form è costruita manualmente e posso richiamare la funzione JS in questo moso:codice:function check_valid(form) { // anagrafe if (form.nome.value == "") { // nome alert ("Il campo del nome è vuoto"); form.nome.value = ""; form.nome.focus(); return false; } if (form.cognome.value == "") { // cognome alert ("Il campo del cognome è vuoto"); form.cognome.value = ""; form.cognome.focus(); return false; } if (form.citta.value == "") { // città alert ( "Il campo della città è vuoto"); form.citta.value = ""; form.citta.focus(); return false; } .......................... return true; }
La cosa mi piace anche perchè usando il JS la pagina non viene ricaricata con tutto quel che segue (una fra le tante, la perdita di dati già inseriti)codice:<form name="form1" method="post" action="invia_form.php" onsubmit="return check_valid(this)" id="form1"> <input type="text" name="nome" size="30" /> <input type="text" name="cognome" size="30" /> <input type="text" name="citta" size="30" /> ....................... </form>
Questa volta il problema è un altro.
Il form non lo scrivo manualmente ma usando semplicemente un ciclo dopo aver rilevato i campi dal DB con una Query e viene scritto in questo modo:
In questo modo so solo che un campo si chiama "note", ma per il resto è tutto buio.codice:echo "<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\"onsubmit=\"check(this);\">\n"; for ($i=1; $i < mysql_num_fields ($Result); $i++) { // comincio da 1 perchè lo "0" è il campo ID $colonna = mysql_field_name ($Result, $i); if ($colonna == "note") { echo "<textarea name=\"".$colonna."\" cols=\"33\" rows=\"5\"></textarea>\n"; } else { echo "<input type=\"text\" name=\"".$colonna."\" size=\"44\" />\n"; } } .................................... echo "</form>\n";
Io penso che ci dovrebbe essere un modo per leggere i controlli del form da JS e controllare se i dati sono validi.
Grazie per l'aiuto che riceverò![]()

Rispondi quotando

