Js/xhtml : form et confirm()
Résolu
doudoupe
Messages postés
85
Date d'inscription
Statut
Membre
Dernière intervention
-
doudoupe Messages postés 85 Date d'inscription Statut Membre Dernière intervention -
doudoupe Messages postés 85 Date d'inscription Statut Membre Dernière intervention -
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()
- Copiez l'image dans un logiciel d'édition d'images ou un outil en ligne comme js paint ou pixlr e. remplissez les cases en suivant le code couleur. des cases supplémentaires vont se remplir automatiquement. que représente le dessin ? ✓ - Forum Windows
- Arrondi js ✓ - Forum Windows
- Remplir une case de tableau avec une couleur grise avec texture de pointillés ✓ - Forum Photoshop
- Reproduction d'un dessin - Forum Graphisme
- Js/kryptik.ad ✓ - Forum Virus
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é.