<input type="text"/>
数値を使用した基本的なHTMLテキストフィールドを使用しています。
JavaScriptイベントkeyup
を追加して、ユーザーが上矢印キー(e.which == 38
)を押したときを確認します。次に、数値をインクリメントします。
コードはうまく機能しますが、私を悩ませていることが1つあります。Safari/MacとFirefox/Macはどちらも、上矢印キーを押しているときにカーソルを最初に移動します。<input type="text"/>
これは、私が知る限り、すべてのテキストフィールドのデフォルトの動作であり、理にかなっています。
ただし、これにより、カーソルが前後にジャンプするという美的効果はあまり得られません(値が変更された後)。
最初のジャンプは続いてkeydown
いますが、この知識があっても、それを防ぐことはできません。私は次のことを試しました:
input.addEventListener('keydown', function(e) {
e.preventDefault();
}, false);
イベントe.preventDefault()
にkeyup
参加することも役に立ちません。
カーソルが動かないようにする方法はありますか?