[Javascript] Problème gestion des doublons
Résolu
Jackho03
Messages postés
21
Statut
Membre
-
Christounet Messages postés 1272 Date d'inscription Statut Membre Dernière intervention -
Christounet Messages postés 1272 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
Configuration: Windows Vista Firefox 2.0.0.8
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 -
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 !! -
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