2

私は Web サイト用の AutoSuggest ウィジェットを作成しています。これは、ユーザーが入力テキスト ボックスに何かを書き込むと、提案のある div が表示され、ユーザーはマウスまたは上下の矢印でナビゲートできるように機能します。各単語は個別に提案されます (Google では、フレーズ全体のどこに表示されるかを提案するのとは異なります。

Google Chrome の入力ボックスに問題があります。上矢印または下矢印を押すと、ブラウザのデフォルトの動作が発生するためです。キャレットを使用して、テキスト ボックスの最後または最初に移動します (ホーム ボタンや終了ボタンなど)。Firefox や Internet Explorer ではそのような影響はありません。この効果を無効にするにはどうすればよいですか?

イベントハンドラー関数から「false」を返しています http://www.javascripter.net/faq/canceleventbubbling.htmの関数も使用しましたが、それでもキャレットはChromeでジャンプしています...

編集:Safariでも同じ効果...

4

2 に答える 2

0

質問に対する真の解決策ではありませんが、この関数 http://blog.vishalon.net/index.php/javascript-getting-and-setting-caret-position-in-textarea/ を使用して回避策を実行しましたイベントの前にキャレットの位置をキャッチし(または、キーダウンイベントが発生したときにキャレットがまだ適切な位置にあるため、正確ではありません)、イベントの後に元に戻します。

于 2011-11-14T22:16:36.470 に答える
0

デフォルトの動作を防止しようとしましたか?

window.addEventListener('keydown', function(e) {
  e.preventDefault();
  ...
}, false);
于 2011-05-18T16:57:46.050 に答える