Probleme avec l'evenement onsubmit????
rwikus
Messages postés
994
Statut
Membre
-
rwikus Messages postés 994 Statut Membre -
rwikus Messages postés 994 Statut Membre -
Bonjour,
voila j'ai un formulaire qui contient par exemple un pseudo et un mot de passe
j'ai fait des fonction en javascript qui vérifient si le pseudo et le mot de passe sont par exemple supérieur a 6 caractère...ect et
a la fin j'ai fait une fonction général qui fait appel a tout les autre fonction c'est a dire celle qui vérifie le pseudo et celle qui vérifie le mot de passe
le problème c'est que lorsque je tape sur valider qui est un bouton de type submit il fais appel a du javascript vu que j'ai mis:
<form name="f" action="pagecible.php" method="post" onsubmit="verifiegeneral()">
il fait appel a la fonction verifiegeneral et détecte les erreur normal mais il bloque pas le lancement du formulaire il va malgré les erreur a la page php
moi je veux qui si ya des problème on reste dans la méme page
merci de bien vouloir m'aider
voila j'ai un formulaire qui contient par exemple un pseudo et un mot de passe
j'ai fait des fonction en javascript qui vérifient si le pseudo et le mot de passe sont par exemple supérieur a 6 caractère...ect et
a la fin j'ai fait une fonction général qui fait appel a tout les autre fonction c'est a dire celle qui vérifie le pseudo et celle qui vérifie le mot de passe
le problème c'est que lorsque je tape sur valider qui est un bouton de type submit il fais appel a du javascript vu que j'ai mis:
<form name="f" action="pagecible.php" method="post" onsubmit="verifiegeneral()">
il fait appel a la fonction verifiegeneral et détecte les erreur normal mais il bloque pas le lancement du formulaire il va malgré les erreur a la page php
moi je veux qui si ya des problème on reste dans la méme page
merci de bien vouloir m'aider
A voir également:
- Probleme avec l'evenement onsubmit????
- Evenement whatsapp - Accueil - WhatsApp
- Sondage evenement facebook - Guide
- Un evenement inattendu s'est produit league of legends ✓ - Forum Jeux vidéo
- Evenement 10016 ✓ - Forum Windows 10
- Evenement 410 kernel pnp - Forum Windows 10
13 réponses
onsubmit="return verifiegeneral()"Dans ta fonction, si il faut envoyer le formulaire, fait "return true;" sinon "return false;"
Bonjour,
Dans ton javascript, il faut mettre "return false" pour bloquer le submit quand il y a des erreurs.
Xavier
Dans ton javascript, il faut mettre "return false" pour bloquer le submit quand il y a des erreurs.
Xavier
c'est a dire dans la fonction verifiegeneral()
contiendra un true si ya pa d'erreur et retournera un false dans le cas contraire?
contiendra un true si ya pa d'erreur et retournera un false dans le cas contraire?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
<script type="text/javascript">
function verifpseudo(champ){
if(champ.length()<3){
return true
}
else return false
}
function verifpass(champ){
if(champ.length()<6){
return true
}
else return false
}
function verifMail(champ)
{
var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
if(!regex.test(champ.value))
{
return false;
}
else
{
return true;
}
}
function verifForm(f)
{
var pseudoOk = verifPseudo(f.pseudo);
var passOk=verifpass(f.passe);
var mailOk = verifMail(f.mail);
if( pseudoOk && mailOk && passeOk )
return true;
else
{
return false;
}
}
</script>
sachant que ya dans mon formularie 3 zone de texte pseudo ,mot de passe et un mail
lorseque je valide méme si ya un probleme dans le mail il va aller dans la page php
function verifpseudo(champ){
if(champ.length()<3){
return true
}
else return false
}
function verifpass(champ){
if(champ.length()<6){
return true
}
else return false
}
function verifMail(champ)
{
var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
if(!regex.test(champ.value))
{
return false;
}
else
{
return true;
}
}
function verifForm(f)
{
var pseudoOk = verifPseudo(f.pseudo);
var passOk=verifpass(f.passe);
var mailOk = verifMail(f.mail);
if( pseudoOk && mailOk && passeOk )
return true;
else
{
return false;
}
}
</script>
sachant que ya dans mon formularie 3 zone de texte pseudo ,mot de passe et un mail
lorseque je valide méme si ya un probleme dans le mail il va aller dans la page php
Où est la fonction verifiegeneral ? C'est la même que verifForm ?
Sinon, j'ai l'impression que tu fais tes tests à l'envers (<3 au lieu de >3) ; et par ailleurs, string.length ne prend pas de parenthèse (c'est un attribut et non pas une fonction)
Voilà ce que je te propose (j'ai repris ton code et l'ai simplifié) :
Javascript :
HTML :
Voilà :)
Xavier
Sinon, j'ai l'impression que tu fais tes tests à l'envers (<3 au lieu de >3) ; et par ailleurs, string.length ne prend pas de parenthèse (c'est un attribut et non pas une fonction)
Voilà ce que je te propose (j'ai repris ton code et l'ai simplifié) :
Javascript :
<script type="text/javascript">
function verifpseudo(champ)
{
return champ.length >= 3;
}
function verifpass(champ)
{
return champ.length >= 6;
}
function verifMail(champ)
{
var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
return regex.test(champ.value);
}
function verifiegeneral(f)
{
var pseudoOk = verifPseudo(f.pseudo);
var passOk=verifpass(f.passe);
var mailOk = verifMail(f.mail);
return pseudoOk && mailOk && passeOk;
}
</script>
HTML :
<form name="f" action="pagecible.php" method="post" onsubmit="return verifiegeneral()">
Voilà :)
Xavier
Il ne faut pas oublier de préciser le formulaire en paramètre :
<form name="f" action="pagecible.php" method="post" onsubmit="return verifiegeneral(this)">
merci bcppp pr votre aide
mais just un dernier truc
je crois que j'ai trouvé le problème car j'ai ajouté aussi la date de naissance au formulaire qui se compose de 3 champ; jour, mois, année et qui sont 3 zone de texte
voila la fonction qui traite le format de la date s'il est vrais ou faux:
function verifieAn(a,b,c){
var erreur=true;
if (isNaN(a+b+c)|| c>2000 ||c<1900)
{alert("veuillez entrer des numeros entre 1 et 31 pour le jour, 1 et 12 pour le mois et un numeros entre 1900 et 2000");erreur=false;return erreur;}
else
{
var tp="";
if (c%4 == 0 && ( c%100 != 0 || c%400 == 0))
tp= "bi";
else
tp= "";//l'erreur tu dois la corriger
switch (b){
case "01":if(a<1 || a>31){alert("Le mois de Janvier comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return erreur;};
break;
case"02":if(tp=="bi"){if(a<1 || a>29){alert("Le mois de Février comporte 29 jours car l'année choisie est bissextile.\nVeuillez choisir une date de naissance comprise en 1 et 29.");erreur=false;return false;}}
else{if(a<1 || a>28){alert("Le mois de Février comporte 28 jours car l'année choisie n'est pas bissextile.\nVeuillez choisir une date de naissance comprise en 1 et 28.");erreur=false;return false;}};
break;
case "03":if(a<1 || a>31){alert("Le mois de Mars comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
case "04":if(a<1 || a>30){alert("Le mois de Avril comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");erreur=false;return false;};
break;
case "05":if(a<1 || a>31){alert("Le mois de Mai comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
case "06":if(a<1 || a>30){alert("Le mois de Juin comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");erreur=false;return false;};
break;
case "07":if(a<1 || a>31){alert("Le mois de Juillet comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
case "08":if(a<1 || a>31){alert("Le mois de Août comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
case "09":if(a<1 || a>30){alert("Le mois de Septembre comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");erreur=false;return false;};
break;
case "10":if(a<1 || a>31){alert("Le mois de Octobre comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
case "11":if(a<1 || a>30){alert("Le mois de Novembre comporte 30 jours, veuillez choisirune date de naissance comprise en 1 et 30.");erreur=false;return false;};
break;
case "12":if(a<1 || a>31){alert("Le mois de Décembre comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
default:alert("Le mois que vous avez entré n'est pas valide. Choisissez un mois compris entre 1 et 12.");erreur=false;return false;
}
}
if(erreur==true)
return true;
else
return false;
}
je l'ai biensur ajouté dans la fonction verifform
seulement voila lorsque je me trompe dans la date il me le signal et lorsque je valide pour la 2em foie mn formulaire il le valide normal et il passe vers la page php malgré que l'erreur n'a pas été corrigé
merci de bien vouloir me répondre et veuillez m'excuser si j'abuse de votre temps
mais just un dernier truc
je crois que j'ai trouvé le problème car j'ai ajouté aussi la date de naissance au formulaire qui se compose de 3 champ; jour, mois, année et qui sont 3 zone de texte
voila la fonction qui traite le format de la date s'il est vrais ou faux:
function verifieAn(a,b,c){
var erreur=true;
if (isNaN(a+b+c)|| c>2000 ||c<1900)
{alert("veuillez entrer des numeros entre 1 et 31 pour le jour, 1 et 12 pour le mois et un numeros entre 1900 et 2000");erreur=false;return erreur;}
else
{
var tp="";
if (c%4 == 0 && ( c%100 != 0 || c%400 == 0))
tp= "bi";
else
tp= "";//l'erreur tu dois la corriger
switch (b){
case "01":if(a<1 || a>31){alert("Le mois de Janvier comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return erreur;};
break;
case"02":if(tp=="bi"){if(a<1 || a>29){alert("Le mois de Février comporte 29 jours car l'année choisie est bissextile.\nVeuillez choisir une date de naissance comprise en 1 et 29.");erreur=false;return false;}}
else{if(a<1 || a>28){alert("Le mois de Février comporte 28 jours car l'année choisie n'est pas bissextile.\nVeuillez choisir une date de naissance comprise en 1 et 28.");erreur=false;return false;}};
break;
case "03":if(a<1 || a>31){alert("Le mois de Mars comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
case "04":if(a<1 || a>30){alert("Le mois de Avril comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");erreur=false;return false;};
break;
case "05":if(a<1 || a>31){alert("Le mois de Mai comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
case "06":if(a<1 || a>30){alert("Le mois de Juin comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");erreur=false;return false;};
break;
case "07":if(a<1 || a>31){alert("Le mois de Juillet comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
case "08":if(a<1 || a>31){alert("Le mois de Août comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
case "09":if(a<1 || a>30){alert("Le mois de Septembre comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");erreur=false;return false;};
break;
case "10":if(a<1 || a>31){alert("Le mois de Octobre comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
case "11":if(a<1 || a>30){alert("Le mois de Novembre comporte 30 jours, veuillez choisirune date de naissance comprise en 1 et 30.");erreur=false;return false;};
break;
case "12":if(a<1 || a>31){alert("Le mois de Décembre comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");erreur=false;return false;};
break;
default:alert("Le mois que vous avez entré n'est pas valide. Choisissez un mois compris entre 1 et 12.");erreur=false;return false;
}
}
if(erreur==true)
return true;
else
return false;
}
je l'ai biensur ajouté dans la fonction verifform
seulement voila lorsque je me trompe dans la date il me le signal et lorsque je valide pour la 2em foie mn formulaire il le valide normal et il passe vers la page php malgré que l'erreur n'a pas été corrigé
merci de bien vouloir me répondre et veuillez m'excuser si j'abuse de votre temps
et méme j'ai essayé d'enlever la date de naissance et j'ai tester avec le pseudo et le mot de passe et le mail ,
j'ai rempli le pseudo et le mot de passe et j'ai laisser le mail vide
la première foie sa l'a signaler mais la deuxième foie sa a charger normalment
j'ai rempli le pseudo et le mot de passe et j'ai laisser le mail vide
la première foie sa l'a signaler mais la deuxième foie sa a charger normalment
Et la console ne te dit rien ?
Penses à effacer les messages déjà présents pour voir les nouvelles alertes.
Penses à effacer les messages déjà présents pour voir les nouvelles alertes.