Page 1 sur 1

Pb de fonction de contrôle de saisie

Posté : 16 août 2007, 12:23
par laeti
Bonjour,

J'ai un script de fonction de contrôles de saisie en javascript. Un de ces contrôles me pose problème.
Dans un formulaire, j'ai 4 listes déroulantes, je souhaite forcer la sélection dans au moins une de ces listes lorsqu'un champ texte est rempli. Avec ce que j'ai mis en place, je rentre dans ma fonction, lorsque rien n'est sélectionné. Quand je sélectionne qqch dans la liste 2,3 ou 4, j'y rentre aussi. En fait, ma fonction marche que lorsque je sélectionne qqch dans la liste 1. Je pense que c'est un problème de parenthèse mais j'ai essayé toutes les combinaisons possibles et ça ne marche pas comme je le voudrais.
Est-ce que quelqu'un pourrait m'aider?

Code : Tout sélectionner

// Fonction pour retourner l'expression "document.getElementById function mini(id){ return document.getElementById(id); } // Fonction de contrôle de saisie des champs texte, des listes déroulantes et des boutons radio du formulaire function check_field(){ if(mini('Bdi_titre').value != '' && (mini('Canton').value == '' || mini('Canton').value == null) && (mini('CDIF').value == '' || mini('CDIF').value == null) && (mini('Commune').value == '' || mini('Commune').value == null) && (mini('EPCI').value == '' || mini('EPCI').value == null)) { alert('Vous devez sélectionner au moins un espace géographique'); return false; } return true; }

Posté : 16 août 2007, 13:14
par d0m
à quoi correspond la liste 1?

Posté : 16 août 2007, 14:15
par laeti
La liste 1 correspond à Canton, la 2 à CDIF, la 3 à commune et la 4 à EPCI.

Posté : 16 août 2007, 14:23
par Sékiltoyai
Evalue tes conditions une à une, ca te permettra peut être de déceler l'erreur, et si tu es sous Internet Explorer, active l'affichage des erreurs, si tu es sous FireFox ou Opera, ouvre la console de débuggage.

Posté : 16 août 2007, 14:26
par laeti
La console d'erreurs de Mozilla ne me rapporte aucune erreur.

Posté : 16 août 2007, 14:28
par Sékiltoyai
Alors évalue tes conditions à part, pour voir ce qu'elles te rendent.

Posté : 16 août 2007, 15:24
par Truc
retourne les conditions pour plus de simplicité :
function check_field(){
   if(mini('Bdi_titre').value != '' &&   
     (mini('Canton').value != '' || 
      mini('CDIF').value != '' || 
      mini('Commune').value != '' 
      mini('EPCI').value != ''
     )
   {
       return true;
   }
   else
   {
       alert('Vous devez sélectionner au moins un espace géographique');
       return false;
   }   
}  

Posté : 16 août 2007, 15:45
par laeti
MERCI!!