私は基本的なHTML <input type="text"/>
テキストフィールドを数値で扱っています。矢印を押しながらテキスト入力のデフォルト動作を防止する
JavaScriptイベントkeyup
を追加して、ユーザーが矢印の上向きキー(e.which == 38
)を押したときを確認してから、数値を増やします。
コードはうまく動作しますが、バグが1つあります。 Safari/MacとFirefox/Macの両方が、矢印の上向きのキーを押しているときにカーソルを最初に移動します。これはすべての<input type="text"/>
テキストフィールドの既定の動作です。これは私が知る限り意味があります。
しかし、カーソルの前後のジャンプ(値が変更された後)の美的効果はあまりありません。
最初のジャンプはに起こりますが、この知識があっても発生を防ぐことはできません。私は、次のことを試してみました:keyup
イベントでe.preventDefault()
を置く
input.addEventListener('keydown', function(e) {
e.preventDefault();
}, false);
はどちらか助けていません。
カーソルが動かないようにする方法はありますか?
それを倒せ!ありがとう、それは完璧です。 :) – riddle
"kludge"への投票がアップしました!私のために働いた、答えのおかげで。 – NotJay