kwb
26-02-2010, 20:50
Ciao a tutti, è da qualche giorno che ho inziato a studiacchaire un po di JS.
Oggi ho preso a lavorare con i form, per vedere se riuscivo a farli interagire come si deve; sto seguendo la guida ad esempi presente su html.it.
Si chiede di fare una pagina in cui, inseriti età e email, lo script sia in grado di riconoscere se l'età è un valore valido ( quindi un numero ) e se il valore inserito per la mail è effettivamente un'indirizzo mail ( viene fatto un controllo sulla presenza, o meno, della chiocciola nel textbox ).
Ho provato a scrivere lo script e la pagina tutta da me, tuttavia non funziona e non riesco a venirne a capo...
Lo script mi sembra identico ( come funzionamento ) a quello proposto nella guida ( quello della guida l'ho testato e funziona ), però non va.
Ecco cosa ho steso:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Esempio</title>
<script type="application/javascript">
function controllo() {
eta = dati.eta.value;
email = dati.mail.value;
if ( isNaN(eta) )
{
alert('Errore età');
return false;
}
if ( email.indexOf("@")==-1 )
{
alert('Errore mail');
return false;
}
}
</script>
</head>
<body>
<p>Compila coi tuoi dati</p>
<form name="dati" action="http://www.google.it" onSubmit="return controllo();" >
Età: <input name="eta" type="text"><br />
Email: <input name="email" type="text" ><br />
<input type="submit" value="Invia" >
</form>
</body>
</html>
Cosa c'è che non va?
Lo script di html è questo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script type="text/javascript">
function valida() {
//prendo i valori dei campi, abbreviandone i nomi
eta=dati.eta.value;
email=dati.email.value;
if (isNaN(eta)){
alert ("Inserisci un'età valida");
return false;
}
if (email.indexOf("@")==-1) {
alert ("Inserisci un'email valida");
return false;
}
}
</script>
</head>
<body>
<form name="dati" action="http://www.html.it" onSubmit="return valida();">
<!-notare il return anteposto alla chiamata della funzione-->
La tua età: <input type="text" name="eta"><br/>
La tua e-mail: <input type="text" name="email"><br/>
<input type="submit" value="invia">
</form>
</body>
</html>
Oggi ho preso a lavorare con i form, per vedere se riuscivo a farli interagire come si deve; sto seguendo la guida ad esempi presente su html.it.
Si chiede di fare una pagina in cui, inseriti età e email, lo script sia in grado di riconoscere se l'età è un valore valido ( quindi un numero ) e se il valore inserito per la mail è effettivamente un'indirizzo mail ( viene fatto un controllo sulla presenza, o meno, della chiocciola nel textbox ).
Ho provato a scrivere lo script e la pagina tutta da me, tuttavia non funziona e non riesco a venirne a capo...
Lo script mi sembra identico ( come funzionamento ) a quello proposto nella guida ( quello della guida l'ho testato e funziona ), però non va.
Ecco cosa ho steso:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Esempio</title>
<script type="application/javascript">
function controllo() {
eta = dati.eta.value;
email = dati.mail.value;
if ( isNaN(eta) )
{
alert('Errore età');
return false;
}
if ( email.indexOf("@")==-1 )
{
alert('Errore mail');
return false;
}
}
</script>
</head>
<body>
<p>Compila coi tuoi dati</p>
<form name="dati" action="http://www.google.it" onSubmit="return controllo();" >
Età: <input name="eta" type="text"><br />
Email: <input name="email" type="text" ><br />
<input type="submit" value="Invia" >
</form>
</body>
</html>
Cosa c'è che non va?
Lo script di html è questo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script type="text/javascript">
function valida() {
//prendo i valori dei campi, abbreviandone i nomi
eta=dati.eta.value;
email=dati.email.value;
if (isNaN(eta)){
alert ("Inserisci un'età valida");
return false;
}
if (email.indexOf("@")==-1) {
alert ("Inserisci un'email valida");
return false;
}
}
</script>
</head>
<body>
<form name="dati" action="http://www.html.it" onSubmit="return valida();">
<!-notare il return anteposto alla chiamata della funzione-->
La tua età: <input type="text" name="eta"><br/>
La tua e-mail: <input type="text" name="email"><br/>
<input type="submit" value="invia">
</form>
</body>
</html>