Recentemente per validare un form tramite JS comincio ad usare una cosa del genere:
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 form è costruita manualmente e posso richiamare la funzione JS in questo moso:
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>
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)
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:
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";
In questo modo so solo che un campo si chiama "note", ma per il resto è tutto buio.
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ò