[Javascript] Problème gestion des doublons

[Résolu/Fermé]
Signaler
Messages postés
21
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
31 octobre 2007
-
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
-
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 !

<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

3 réponses

Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 364
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
Messages postés
21
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
31 octobre 2007

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 !!
Messages postés
21
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
31 octobre 2007

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
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 364
Bonjour,
Pas de problème. Content que tu ai trouvé la solution
A plus