[Javascript] Problème gestion des doublons

Résolu/Fermé
Jackho03 Messages postés 21 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 31 octobre 2007 - 31 oct. 2007 à 17:15
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 - 31 oct. 2007 à 18:00
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
A voir également:

3 réponses

Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 384
31 oct. 2007 à 17:21
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
0
Jackho03 Messages postés 21 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 31 octobre 2007
31 oct. 2007 à 17:32
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 !!
0
Jackho03 Messages postés 21 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 31 octobre 2007
31 oct. 2007 à 17:40
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
0
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 384
31 oct. 2007 à 18:00
Bonjour,
Pas de problème. Content que tu ai trouvé la solution
A plus
0