Js/xhtml : form et confirm()
Résolu
doudoupe
Messages postés
94
Statut
Membre
-
doudoupe Messages postés 94 Statut Membre -
doudoupe Messages postés 94 Statut Membre -
Bonjour,
J'ai un formulaire constituer de 17 champs puis un bouton "submit".
Plus clair qu'une explication voici les parties du code qui posent probleme:
Mon formulaire (sans les inputs, ils ne posent pas problème) :
Et mon fichier confirmMessage.js qui doit vérifier que les champs ne sont pas vide et demander la confirmation à l'utilisateur grâce à confirm():
Le problème est que même si les champs sont vides, l'appel à "confirm" est fait.
D'où : Y a t'il un problème avec cette ligne :: ?
if(document.forms['my_form'].elements[i].value != "")
Merci pour vos réponses.
EDIT: En fait, je remarque que le for et le if ne sont pas bien gérés... Mais comment faire pour que lorsqu'au moins un champs sur les 17 est vide, on appelle le "alert" ? et si tout est rempli on appelle "confirm" ?
J'ai un formulaire constituer de 17 champs puis un bouton "submit".
Plus clair qu'une explication voici les parties du code qui posent probleme:
Mon formulaire (sans les inputs, ils ne posent pas problème) :
<?php include("confirmMessage.js"); ?>
<form id="my_form" action="process.php" method="post" onsubmit="confirmMessage()">
...
Tous mes <input />
...
<input type="submit" name="send" value="Enregistrer" id="send" />
</form>
Et mon fichier confirmMessage.js qui doit vérifier que les champs ne sont pas vide et demander la confirmation à l'utilisateur grâce à confirm():
<script type="text/javascript">
// <!-- <![CDATA[
function confirmMessage(){
for(var i=0; i<16; i++)
{
if(document.forms['my_form'].elements[i].value != "") {
return confirm("Confirmer les données?");
}
else {
alert("Veuillez saisir tous les champs");
return false;
}
}
}
//]]> -->
</script>
Le problème est que même si les champs sont vides, l'appel à "confirm" est fait.
D'où : Y a t'il un problème avec cette ligne :: ?
if(document.forms['my_form'].elements[i].value != "")
Merci pour vos réponses.
EDIT: En fait, je remarque que le for et le if ne sont pas bien gérés... Mais comment faire pour que lorsqu'au moins un champs sur les 17 est vide, on appelle le "alert" ? et si tout est rempli on appelle "confirm" ?
A voir également:
- Js/xhtml : form et confirm()
- Js echo ✓ - Forum PHP
- Arrondir js ✓ - Forum Windows
- Arrondi js ✓ - Forum Windows
- Js/packed.agent.n ✓ - Forum Antivirus
- Isset js ✓ - Forum Javascript
2 réponses
J'ai modifier mon script js, et je pensais que ça devait fonctionner :
Mais ça ne fonctionne pas non plus, donc je suppose que cela vient bien de la ligne :
if(document.forms['my_form'].elements[i].value = "")
Autrement, lorsque je clique sur annuler à l'appel de "confirm", ça envoit tout de meme le formulaire à la page de traitement...
Un problème dans mes return ??
<script type="text/javascript">
// <!-- <![CDATA[
function confirmMessage(){
var vide = false;
for(var i=0; i<16; i++)
{
if(document.forms['my_form'].elements[i].value = "") vide = true;
}
if(vide) {
alert("Veuillez saisir tous les champs!");
return false;
}
else {
return confirm("V\351rifiez et confirmez le nouveau souscripteur?");
}
}
//]]> -->
</script>
Mais ça ne fonctionne pas non plus, donc je suppose que cela vient bien de la ligne :
if(document.forms['my_form'].elements[i].value = "")
Autrement, lorsque je clique sur annuler à l'appel de "confirm", ça envoit tout de meme le formulaire à la page de traitement...
Un problème dans mes return ??
Résolu :
Note pour les gens qui cherche comme moi :
Le code du dernier post fonctionne bien, en ajoutant simplement un '=' que j'avais oublié dans la condition! :D
Et il faut aussi penser à mettre dans la balise <form> le 'return' à l'attribut onsubmit
->> <form ... onsubmit="return confirmMessage();"
Autrement, quelques soit le résultat de confirmMessage(), le formulaire est envoyé.
Note pour les gens qui cherche comme moi :
Le code du dernier post fonctionne bien, en ajoutant simplement un '=' que j'avais oublié dans la condition! :D
Et il faut aussi penser à mettre dans la balise <form> le 'return' à l'attribut onsubmit
->> <form ... onsubmit="return confirmMessage();"
Autrement, quelques soit le résultat de confirmMessage(), le formulaire est envoyé.