我不能阻止按键更改Firefox中的选定选项

时间:2010-02-11 15:02:36

标签: firefox select keystrokes

使用Firefox 3.5.7

以下测试页应该像Opera,Safari和Chrome一样。

按键(箭头或1-5)应无效(即应取消事件,使数字永远不会从初始默认值“3”改变。)

[我也有IE的单独工作代码]。

非常感谢能让它发挥作用的任何人?

<html>  
    <head> 
        <title>Test</title>  
        <script type='text/JavaScript'>  
            function stop(evt)  
                {evt.preventDefault();  
                 evt.stopPropagation();  
                };  
        </script>  
    </head>  
    <body>  
        <select onkeydown='stop(event);' onkeypress='stop(event);'>  
            <option>1</option>  
            <option>2</option>  
            <option selected="selected">3</option>  
            <option>4</option>  
            <option>5</option>  
        </select>  
    </body>  
</html> 

2 个答案:

答案 0 :(得分:0)

这对我有用(看起来很邪恶,到目前为止我还没有在FF上找到任何其他解决方案):

<html>  
<head> 
    <title>Test</title>  
    <script type='text/JavaScript'>
        function stop(evt) {
          evt.preventDefault();
          var elem = document.getElementById('mysel');
          elem.blur();
          setTimeout('refocus()', 0);
        };
        function refocus() {
          document.getElementById('mysel').focus();
        }
    </script>  
</head>  
<body>  
    <select id="mysel" onkeydown="stop(event);">  
        <option>1</option>  
        <option>2</option>  
        <option selected="selected">3</option>  
        <option>4</option>  
        <option>5</option>  
    </select>  
</body>  

答案 1 :(得分:0)

@icktofay:这是一个简化的测试页面,展示了这个问题。我在主代码中实际做的是用显式操作替换选择框的内部按键处理。

@boxofrats:是的,这是邪恶的......但有效。感谢。