onKeypress sur un SELECT

onKeypress sur un SELECT - HTML/CSS - Programmation

Marsh Posté le 27-10-2008 à 09:45:57    

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 :
 

Code :
  1. onKeypress = function (event) {
  2.   if(event.keyCode==37 || event.keyCode==38
  3.         || event.keyCode==39 || event.keyCode==40){
  4.     event.cancelBubble = true;
  5.     if (event.stopPropagation) {
  6.       event.stopPropagation();
  7.     }
  8.     if (event.preventDefault) {
  9.       event.preventDefault();
  10.     }
  11.     event.returnValue = false;
  12.     return false;
  13.   }
  14. }


 
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 ?

Reply

Marsh Posté le 27-10-2008 à 09:45:57   

Reply

Marsh Posté le 27-10-2008 à 12:56:04    

Une idée serait de laisser l'utilisateur faire ce qu'il veut et dans le onChange remettre la valeur par défaut. Par exemple:

<html>
<head>
<script language=javascript>
function l_num_change()
{
   f_order.l_num.options.selectedIndex = 1;
}
</script>
</head>
<body>
<form name="f_order" id="f_order" action="test17.htm">
<select size=1 id="l_num" onChange=l_num_change()>
<option value="1">un</option>
<option value="2" selected>deux</option>
<option value="3">trois</option>
</select>
</form>
</body>
</html>


Edit : Ou encore plus simple, de rendre le select invalide

<html>
<body>
<form name="f_order" id="f_order" action="test17.htm">
<select size=1 id="l_num" disabled>
<option value="1">un</option>
<option value="2" selected>deux</option>
<option value="3">trois</option>
</select>
</form>
</body>
</html>



Message édité par olivthill le 27-10-2008 à 12:59:27
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed