11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Dans le cadre du développement d'un site web, j'ai une boucle php qui génère une liste de checkbox.
J'avais besoin d'un script qui puisse limiter à 5 le nombre maximum de cases cochables. J'ai fouillé un peu sur le net, étant néophite en javascript, et j'avais trouvé ce script qui me semblait pas mal.

<script language="JavaScript">
            var nbCheck = 0;
         
            function isChecked(elmt)
            {
                if( elmt.checked )
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
             
            function countChoices(elmt)
            {
                if( (nbCheck < 5) || (isChecked(elmt) == false) )
                {
                    if( isChecked(elmt) == true )
                    {
                        nbCheck += 1;
                    }
                    else
                    {
                        nbCheck -= 1;
                    }
                }
                else
                {
                    elmt.checked = '';
                }
            }
        </script>


Sauf qu'avec ce code, si on clique frénétiquement sur une sixième checkbox, celle-ci finit par se cocher, mais exclusivement avec IE. Est-ce que quelqu'un pourrait m'indiquer pourquoi, et comment y remédier ?

Je vous remercie par avance de m'avoir lue, et de vos réponses Smiley biggrin