-
controllo su form js
Ciao ragazzi, premesso che son un asino a usare javascript, avrei bisogno di una mano per controllare 3 campi, che siano pieni, e uon, che sia una mail valida. Se così non fosse, premendo invio esce un alert, ''devi riempire i campi'' o ''la mail non è valida''. Il codice del form è il seguente:
codice PHP:
<form name="info" id="info" action="?php" method="post">
<input type="text" name="mittente" id="mittente" />
<input type="text" name="oggetto" id="oggetto" />
<textarea name="messaggio" id="messaggio" ></textarea>
<input type="submit" value="Invia" />
</form>
Chi mi può aiutare gentilmente? garzie ciao
-
Dovresti creare una funzione da utilizzare al submit del form....
ade esempio:
Codice HTML:
<form name="info" id="info" action="?php" method="post" onsubmit="return controlla(this)">
Poi la funzione javascript:
Codice HTML:
<script type="text/javascript">
function controlla(form) {
if(form.mittente.value == "") {
alert("Il campo mittente è vuoto!");
form.mittente.focus();
}
if(form.oggetto.value == "") {
alert("Il campo oggetto è vuoto!");
form.oggetto.focus();
}
if(form.messaggio.value == "") {
alert("Il campo messaggio è vuoto!");
form.messaggio.focus();
}
}
</script>
-
Ok grazie, così funziona ma come facco a fare un solo aletr'' non hai compilato tutit icampi?'' senza specificare uno a uno? e poi per il controllo se la mail è valida? lo metto dopo quaesti controlli?Grazie
-
Fai così (modifica la funzione in javacript), questo per fare un alert alla volta, senza eseguirli tutti insieme:
Codice HTML:
<script type="text/javascript">
function controlla(form) {
if(form.mittente.value == "") {
alert("Il campo mittente è vuoto!");
form.mittente.focus();
return false;
}
else if(form.oggetto.value == "") {
alert("Il campo oggetto è vuoto!");
form.oggetto.focus();
return false;
}
else if(form.messaggio.value == "") {
alert("Il campo messaggio è vuoto!");
form.messaggio.focus();
return false;
}
}
</script>
O se vuoiu fare un alert per tutto....
Codice HTML:
<script type="text/javascript">
function controlla(form) {
if(form.mittente.value == "" || form.oggetto.value == "" || form.messaggio.value == "") {
alert("Non hai compliato tutti i campi");
return false;
}
}
</script>
P.S. qual'è il campo che contiene l'email?
-
Gnetilissimo, per verificare la validità dell'indirizzo email invece come posso fare?
-
Hai bisogno di una espressione regolare. Comunque potresti dire qual'è il campo che deve contenere l'email?
Se per caso è mittente...
Prova così (tutto il codice completo più controllo email):
Codice HTML:
<script type="text/javascript">
function controlla(form) {
if(form.mittente.value != "") {
var corretta = form.mittente.value.match(/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)/g);
if(!corretta) {
alert("L'email inserita non è corretta!");
}
return false;
}
else if(form.oggetto.value == "") {
alert("Il campo oggetto è vuoto!");
form.oggetto.focus();
return false;
}
else if(form.messaggio.value == "") {
alert("Il campo messaggio è vuoto!");
form.messaggio.focus();
return false;
}
}
</script>
-
Si si il campo email è il mittente, cioè a me servirebbe che facesse prima uncontrollo per verificare se i campi son pieni, come quello di prima va benissimo, poi quello della mail che verifica se funziona, in teoria basta che metto nella stessa funzione quello che mi hai scritto prima più la paerte dell'email ora...o è meglio se metto il controllo della mail dentro un altro if, cioè se verifica che i campi son pieni, fa il ocntrollo sulla mail. giusto?
EDIT:
io l'ho fatto così:
codice PHP:
<script type="text/javascript">
function controlla(form) {
if(form.mittente.value != "") {
var corretta = form.mittente.value.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)/g);
if(!corretta) {
alert("L'email inserita non è corretta!");
}
return false;
}
else if(form.mittente.value == "" || form.oggetto.value == "" || form.messaggio.value == "") {
alert("Non hai compliato tutti i campi");
return false;
}
}
</script>
se non compilo i camp mi da errore, se compilo la mail in modo errato im da errore, se però complilo la mail correttamente e lascio gli altri due campi vuoti non mi da errore...cosa sbaglio?
-
Ok, scusa ma ho fatto un pò di confusione :lol:....
Ho risolto con due funzioni....
Codice HTML:
<script type="text/javascript">
function controlla(form) {
if(form.mittente.value == "") {
alert("Il campo mittente è vuoto!");
form.mittente.focus();
return false;
}
else if(form.oggetto.value == "") {
alert("Il campo oggetto è vuoto!");
form.oggetto.focus();
return false;
}
else if(form.messaggio.value == "") {
alert("Il campo messaggio è vuoto!");
form.messaggio.focus();
return false;
}
}
function mail(email) {
var mail_corretta = email.match(/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)/g);
if(!mail_corretta) {
alert("L'email inserita non è corretta!");
document.info.mittente.focus();
return false;
}
}
</script>
<form name="info" id="info" action="?php" method="post" onsubmit="return controlla(this)">
<input type="text" name="mittente" id="mittente" onchange="mail(this.value)" />
<input type="text" name="oggetto" id="oggetto" />
<textarea name="messaggio" id="messaggio" ></textarea>
<input type="submit" value="Invia" />
</form>
-
Figurati!:) ok cmq così è perfetto, l'unica cosa che mi da l'errore la prima volta ma se rischiaccio senza provvedere all'errore passa oltre, non lo vede due volte
-
Capito, quello è perchè ho utilizzato onchange...
Bisogna trovare una soluzione che al momento non riesco a completare!
EDIT:
Codice HTML:
<script type="text/javascript">
function controlla(form) {
if(form.oggetto.value == "") {
alert("Il campo oggetto è vuoto!");
form.oggetto.focus();
return false;
}
else if(form.messaggio.value == "") {
alert("Il campo messaggio è vuoto!");
form.messaggio.focus();
return false;
}
}
function mail(email) {
var mail_corretta = email.match(/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)/g);
if(!mail_corretta) {
alert("L'email inserita non è corretta o non è stata inserita alcuna email!");
document.info.mittente.focus();
return false;
}
}
</script>
<form name="info" id="info" action="?php" method="post" onsubmit="return controlla(this)">
<input type="text" name="mittente" id="mittente" />
<input type="text" name="oggetto" id="oggetto" />
<textarea name="messaggio" id="messaggio" ></textarea>
<input type="submit" value="Invia" onclick="mail(document.info.mittente.value)" />
</form>
Così da un pò di problemi ma il campo email viene forzato ad essere compilato correttamente...
-
ok allora ho provato a fare così:
Codice HTML:
function controlla(form) {
if(form.mittente.value == "" || form.oggetto.value == "" || form.messaggio.value == "") {
alert("Non hai compliato tutti i campi");
return false;
}else if(form.mittente.value != "" && form.oggetto.value != "" && form.messaggio.value != ""){
var mail_corretta = email.match(/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)/g);
if(!mail_corretta) {
alert("L'email inserita non è corretta!");
document.info.mittente.focus();
return false;
}
}
}
Il problema è che sui campi il controllo funziona, sulla mail corretta non lo fa..cosa sto sbagliando?
-