Pb de fonction de contrôle de saisie

Eléphant du PHP | 91 Messages

16 août 2007, 12:23

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; }

d0m
Mammouth du PHP | 1141 Messages

16 août 2007, 13:14

à quoi correspond la liste 1?

Eléphant du PHP | 91 Messages

16 août 2007, 14:15

La liste 1 correspond à Canton, la 2 à CDIF, la 3 à commune et la 4 à EPCI.

ViPHP
ViPHP | 5924 Messages

16 août 2007, 14:23

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.

Eléphant du PHP | 91 Messages

16 août 2007, 14:26

La console d'erreurs de Mozilla ne me rapporte aucune erreur.

ViPHP
ViPHP | 5924 Messages

16 août 2007, 14:28

Alors évalue tes conditions à part, pour voir ce qu'elles te rendent.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 août 2007, 15:24

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;
   }   
}  

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 91 Messages

16 août 2007, 15:45

MERCI!!