- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- JavaScript e controllo dati form HTML. Dove sbaglio?
-
JavaScript e controllo dati form HTML. Dove sbaglio?
Ciao ragazzi
Ho realizzato un classico form HTML che chiede alcuni dati all'utente.
Ho poi messo un controllo in JavaScript per verificare che tutti i campi richiesti vangano compilati.Il problema è che questo script funziona solo in parte: JS mi visualizza un alert se il campo non è stato compilato, ma il form html continua comunque ad andare avanti e nonostante il messaggio di errore si viene reindirizzati alla pagina presente in "action".
Dove sbaglio?
Eccovi il codice HTML:
<form name="iscrizione" id="form_iscrizione" method="post" onsubmit="controllo()" action="subscribe.php"> [............] <td align="left"> <input type="submit" name="Submit" value="Registrati" > </td> </form>
...e questo è il codice JS (incluso ovviamente nella stessa pagina):
<script language="javascript"> function controllo() { if (nome.value == "") { alert ("Tutti i campi devono essere compilati"); document.forms[form_iscrizione].elements[campo_nome].focus(); return false; } else { return true; } } </script>
Il codice JS l'ho messo subito dopo la chiusura del FORM. Ho provato a spostarlo anche tra gli HEAD ma non cambia nulla...
Qualcuno sa dirmi dove sbaglio?
Riepilogando, l'invio dei dati del FORM deve essere interrotto se uno dei campi è vuoto (in questo caso ho specificato solo il campo "nome").
Ogni idea è ben accettaGrazie, ciao
-
Prova a cambiare queste righe.
[PHP]
<form name="iscrizione" id="form_iscrizione" method="post" action="subscribe.php">[/PHP][php]<input type="button" onclick="controllo()" name="Submit" value="Registrati" >[/php][php]else
{
document.forms["form_iscrizione"].submit();
}[/php]Purtroppo non posso testarlo.
-
Grazie milleeeeeeeeeeeee!!!!!!!!
Finalmente dopo un'intera mattinata a sbattere la testa ci sono riuscito grazie a teeeee
Grazie ancora!!
Ciao ciao
-
Aspetta a cantare vittoria.
Io non lo ho testato su Firefox e Internet Explorer.Provalo su tutti e due per sicurezza.
-
@marcocarrieri said:
Aspetta a cantare vittoria.
Io non lo ho testato su Firefox e Internet Explorer.:(): Ho appena testato su IE e non funziona!!
Ma come devo fare?? Su Chrome funziona perfettamente! Mah!
A questo punto cosa mi suggerisci di fare?
-
Riesci a vedere se ti ritorna qualcosa?
Metti un alert dentro la funzione di controllo intanto.
E poi sappimi dire.
-
Lasciando tutto come dici tu IE mi scrive nella barra grigia in basso "Errore nella visualizzazione della pagina" al momento del click sul pulsante "Registrati".
Ho messo quindi l'alert prima dell'IF e a quel punto IE riesce ad aprire quel nuovo alert ma poi non fa più nulla e nella barra grigia in basso scrive "Fine".Che vuol dire??
Che faccio??
-
Che sia questo?
name="form_iscrizione" id="form_iscrizione"
-
@marcocarrieri said:
Che sia questo?
name="form_iscrizione" id="form_iscrizione"Ho aggiunto "form_iscrizione" al name ma non cambia nulla...
HELP!!!
-
Appena ho un minuti libero lo faccio e lo testo qua.
Nel frattempo magari passa qualcuno.
-
Ok, ti ringrazio
Magari fossero tutti disponibili come te
Io intanto vado avanti...
A dopo
-
A me con questo sembra andare.
[php]<html>
<head>
<title>Test</title>
<script type="text/javascript">
function controllo()
{
var campo=document.getElementById("campo");
var valore=campo.value;
if(valore=="")
{
alert("Ci sono dei campi vuoti");
}
else
{
document.mioform.submit();
}
}
</script>
</head>
<body>
<form id="mioform" name="mioform" action="pagina.php" method="post">
<input type="text" value="" id="campo" name="campo" />
<input type="button" value="INVIA" onclick="controllo()" />
</form>
</body>
</html>[/php]
-
Il tuo codice non l'ho provato. Comunque ho appena risolto...
Mi è stato suggerito di sistemare alcune cose:- onsubmit="return controllo()"
- if (document.form_iscrizione.nome.value == "")
- document.forms['form_iscrizione'].elements['campo_nome'].focus();
Adesso funziona
Grazie comunque, mi sei stato di immenso aiuto
-
Bene.
Basta risolvere.
-
Vorrei sapere solo un'ultima cosa
Siccome non ho mai programmato in JS non so come usare l'IF per controllare tutti i campi del form insieme.
Il form contiene 8 campi, come faccio a controllare che siano tutti compilati?
Esiste una specie di "AND" che va insieme all'IF?
-
Visto che il controllo della correttezza di un campo varia da campo a campo.
Vedi mail, vedi eta o altro, io farei cosi.var errore=false;
if(condizione)
{
errore=true
}Per ogni campo.
Alla fine controlli se la variabile errore è a true e in questo caso generi l'alert, senno fai il submit.
-
Siccome non voglio cambiare nuovamente il codice (visto che funziona) ho provato a fare così:
if (document.form_iscrizione.nome.value == "") || (document.form_iscrizione.email.value == "") || (document.form_iscrizione.password.value == "") || ecc....
Non funziona, non fa nulla quando clicco su "Registrati".
Dove ho sbagliato?
-
Se metti tutto il codice della pagina, con HTML e Javascript vedo quello che hai fatto cosi magari provo.
-
Ci sono riuscito
Avevo sbagliato, bisogna scrivere:
if (document.form_iscrizione.nome.value == "" || document.form_iscrizione.email.value == "" || document.form_iscrizione.password.value == "")
Insomma, gli "OR" vanno messi tutti dentro un'unica parentesi.
Grazie ancora, alla prossima
-
Eheh... Allora ti ho dato un aiuto morale eheh...