1

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> 
4

2 に答える 2

0

This works for me (looks pretty evil, I haven't found any other solution on FF so far):

<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>  

于 2010-06-08T22:57:48.917 に答える
0

@icktofay: これは、問題を示す簡略化されたテスト ページです。メイン コードで実際に行っていることは、選択ボックス固有のキーストローク処理を明示的なアクションに置き換えることです。

@boxofrats: はい、それは悪です... しかし効果的です。ありがとう。

于 2010-06-24T11:48:53.337 に答える