11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Je souhaiterais modifier le comportement d'un champ select pour qu'on ne puisse pas modifier sa valeur avec les touches up, down, left, right.
Voici le onKeypress que j'ai positionné sur ma combo :

onKeypress = function (event) {
  if(event.keyCode==37 || event.keyCode==38 
        || event.keyCode==39 || event.keyCode==40){
    
    event.cancelBubble = true;
    if (event.stopPropagation) {
      event.stopPropagation();
    }
  
    if (event.preventDefault) {
      event.preventDefault();
    }
    event.returnValue = false;
    return false;
  }
}


Hélas ce code n'empêche pas la propagation de l'événement. Et du coup l'appuie sur la flèche bas (par exemple) provoque bien le défilement des <option>.
Quelqu'un aurait une idée svp ?
Modifié par joebarteam88 (27 Oct 2008 - 09:35)
Le onchange pouvant être déclenché sur une modification venant du clavier ou de la souris, cela impliquerait que je "trace" d'où je viens pour savoir si je dois repositionner ou non la valeur (event venant du onkeypress ou onclick).
Certes ça pourrait peut être fonctionner (j'ai pas testé non plus Smiley lol ) mais je cherche une solution plus "propre" et direct ...enfin s'il en existe une Smiley rolleyes