Test d'un champ vide et operateur && dans

Bonjour,

j'utilise un formulaire avec deux champs à option :

<select name="champ1">
<option></option>
<option>valeur 1</option>
<option>valeur 2</option>
...
<select name="champ2">
<option></option>
<option>valeur 1</option>
<option>valeur 2</option>
...

et je souhaite tester si au moins un des deux a une valeur, je fais le test suivant :

if ((frm['champ1'].value == '') && (frm['champ2'].value == ''))
{
alert('Please enter a value.');
return false;
}

cela marche très bien dans Firefox, mais dans IE quelque soit la façon dont je renseigne mes 2 champs j'ai toujours le resultat false.

Que dois-je corriger ? le test champ vide ? l'opérateur && ?

Merci d'avance pour votre aide.
Configuration: Windows XP
Firefox 3.0.8

1 réponse

  1. C'est le probleme classique entre IE et FF.
    Pour récupérer ton objet passe par la methode getElementsByName
    voici un ptit script pour que tu comprennes bien :

    <html>
    <head>
    <script type="text/javascript">
    function test(){
    if ( (document.getElementsByName('champ1')[0].value == '') && (document.getElementsByName('champ2')[0].value == '') )
    {
    alert('Please enter a value.');
    }
    }
    </script>
    </head>

    <body>
    <select name="champ1">
    <option></option>
    <option>valeur 1</option>
    <option>valeur 2</option>
    <br/><br/>
    <select name="champ2">
    <option></option>
    <option>valeur 1</option>
    <option>valeur 2</option>
    <input type="button" onclick="javascript:test()"/>
    </body>
    </html>

    EnJoY !
    0
    1. bonjour,

      hélas toujours pas résolu.
      ok dans FF, mais toujours pas dans IE
      0