Funzione di controllo su un form, comportamento inaspettato

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Buongiorno a tutti,
premetto che javascript non è esattamente il mio forte...
Ho un form che mi permette di inserire o un codice lezione o un indirizzo mail per poi eseguire una ricerca in un db.
Voglio controllare che nella casella del codice lezione vengano inseriti solo numeri (e qui funziona) e che se viene inserita una mail questa sia formalmente corretta.
Ho fatto così: nel form per il campo relativo alla lezione:
Codice:
<input name="idlezione" type="text" size="5" onBlur="isnum(this)" />
e questa è la funzione corrispondente:
Codice:
function isnum(obj) {

if (isNaN(obj.value) || parseInt(obj.value)<0 || parseInt(obj.value) > 9999)

{

alert('Nel campo è possibile immettere solo numeri!');
obj.value="";
obj.focus();
}

}
E qui tutto bene.
Poi l'altro campo:
Codice:
<input name="mailcliente" type="text" size="50" onBlur="controllamail(this)" />
Funzione corrispondente:
Codice:
function controllamail(email) {

	var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;

	if(!email_reg_exp.test(email)){
		alert("ATTENZIONE: La mail inserita non è corretta!");
		document.modulo.mailcliente.select();
		return false;
		}
}
Quando inserisco una mail in questo campo si attiva l'alert anche se la mail è formalmente corretta.
Dove sbaglio?
Grazie per i suggerimenti
 
ciao
anche se il js è per me un po' ostico, prova (al massimo non funziona)
Codice:
var email_reg_exp = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.]{2,})+\.([A-Za-z]{2,})$/;
poi in consiglio se è importante fai il controllo anche lato server, js può essere bypassato
 
ciao
dimenticavo, se stai lavorando in html5 puoi usare senza js
HTML:
<input type="number" name="idlezione" min="0" max="9999" size="5">
<input type="email" name="mailcliente" size="50">
anche se serve sempre una verifica lato server
 
ciao
prova a d aggiungere
Codice:
if(!email_reg_exp.test(email)){
		alert("ATTENZIONE: La mail inserita non è corretta!");
		document.modulo.mailcliente.select();
		return false;
		}else{return true;}
 
Visto che non se ne viene a capo, per ora ho eliminato il controllo sulla mail.
Comunque se a qualcuno viene in mente qualcosa...
Alla prossima e grazie
 

Discussioni simili