[Javascript] Problème gestion des doublons
Résolu
Jackho03
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
Christounet Messages postés 1264 Date d'inscription Statut Membre Dernière intervention -
Christounet Messages postés 1264 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je souhaiterai réaliser un code javascript permettant de vérifier l'existence de doublons dans un formulaire !
J'ai réalisé un code fonctionnant mais ne me convenant pas parfaitement !
Donc ce code au dessus fonctionne car j'y ai mis des input :
Field 1<input type="text" name="champ1" size="5"><p>
Maintenant si je souhaite remplacer ces inputs par des menus déroulant on dirait que la vérification ne se fait plus et on accède a l'adresse spécifiée dans "action"
Cela donne donc pour la partie du formulaire (le reste étant inchangé !!) :
Voila avez vous une idée pourquoi cela marche dans un cas et pas dans l'autre ??
Je vous remercie et bonne soirée ^^
Sylvain
je souhaiterai réaliser un code javascript permettant de vérifier l'existence de doublons dans un formulaire !
J'ai réalisé un code fonctionnant mais ne me convenant pas parfaitement !
<html> <head> <script language=javascript> function check_fields(a_form) { // Boucle sur tous les élément du formulaire for (i = 0; i < a_form.elements.length ; i++) { if (a_form.elements[i].type == "text" ) { // Test only edit fields // Boucle pour comparer ce champ avec les autres // pour voir s'il y a des doublons for (j = 0; j < a_form.elements.length ; j++) { if (i == j) continue; if (a_form.elements[j].type != "text" ) continue; if (a_form.elements[i].value == a_form.elements[j].value) { alert("Doublon. Saisir autre chose." ); a_form.elements[i].focus(); return(false); } } } } // It's ok, submit the form a_form.submit(); return(true); } </script> </head> <body> <form name='voeux' onsubmit='return check_fields(this)' action='http://mangaflooding.superforum.fr/index.forum' method='GET' > Field 1<input type="text" name="champ1" size="5"><p> Field 2<input type="text" name="champ2" size="5"><p> Field 2<input type="text" name="champ3" size="5"><p> Field 2<input type="text" name="champ4" size="5"><p> Field 2<input type="text" name="champ5" size="5"><p> <input type="submit" value="Validate"> </form> </body> </html>
Donc ce code au dessus fonctionne car j'y ai mis des input :
Field 1<input type="text" name="champ1" size="5"><p>
Maintenant si je souhaite remplacer ces inputs par des menus déroulant on dirait que la vérification ne se fait plus et on accède a l'adresse spécifiée dans "action"
Cela donne donc pour la partie du formulaire (le reste étant inchangé !!) :
<form name='voeux' onsubmit='return check_fields(this)' action='http://mangaflooding.fr/cgi-bin/Projet/ajout_voeux.pl' method='GET' > <select name='champ1'> <option value='1'>155 <option value='2'>200 <option value='3'>300 </select> <select name='champ2'> <option value='1'>155 <option value='2'>200 <option value='3'>300 </select> <select name='champ3'> <option value='1'>155 <option value='2'>200 <option value='3'>300 </select> <input type="submit" value="Validate"> </form>
Voila avez vous une idée pourquoi cela marche dans un cas et pas dans l'autre ??
Je vous remercie et bonne soirée ^^
Sylvain
A voir également:
- [Javascript] Problème gestion des doublons
- Doublons photos - Guide
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Logiciel gestion photo gratuit - Guide
- Gestion des fichiers - Télécharger - Gestion de fichiers
- Telecharger javascript - Télécharger - Langages
3 réponses
Bonjour,
Dans ton script, tu ne vérifie que les champs du type "Text" avec les 2 lignes suivantes:
if (a_form.elements[i].type == "text" ) {
et
if (a_form.elements[j].type != "text" ) continue
Si tu ne veux vérifer que les champs de type "Select" , changes le mot "text" par "select", si tu veux vérifier les deux alors copie ton code deux fois, une fois pour "text", une autre fois pour "select"
Salut
Dans ton script, tu ne vérifie que les champs du type "Text" avec les 2 lignes suivantes:
if (a_form.elements[i].type == "text" ) {
et
if (a_form.elements[j].type != "text" ) continue
Si tu ne veux vérifer que les champs de type "Select" , changes le mot "text" par "select", si tu veux vérifier les deux alors copie ton code deux fois, une fois pour "text", une autre fois pour "select"
Salut
Merci de ta réponse !
Je viens d'essayer en remplacant par select a chaque fois qu'il y a "text" et ca ne change rien !!
Mais bon je pense qu'en efeft ca doit venir de la condition if que j'avais mise en "text" !
Si tu as une autre idée ce serait génial.
Merci encore !!
Je viens d'essayer en remplacant par select a chaque fois qu'il y a "text" et ca ne change rien !!
Mais bon je pense qu'en efeft ca doit venir de la condition if que j'avais mise en "text" !
Si tu as une autre idée ce serait génial.
Merci encore !!
J'ai trouvéééé il faut écrire "select-one" a la place de "text" !!
En tout cas merci de m'avoir mis sur la voie !!!!
J'ai trouvé la réponse en zieutant sur ce site :
https://forum.alsacreations.com/topic-5-5203-1-RESOLU-Besoin-dun-ltinput-typequotresetquotgt-plus-effica.html
En tout cas merci de m'avoir mis sur la voie !!!!
J'ai trouvé la réponse en zieutant sur ce site :
https://forum.alsacreations.com/topic-5-5203-1-RESOLU-Besoin-dun-ltinput-typequotresetquotgt-plus-effica.html