私は繰り返し入力する必要がある多くの入力フィールドを持っているので、通常タブを使用してフォームをナビゲートします。入力間のタブ移動時にすべてのテキストをハイライト表示しないようにするにはどうすればよいですか?
フィールドには、デフォルトの接尾辞の値を前に付ける必要があります。マウスクリックで入力にフォーカスすると、期待どおりに動作します。
私は入力間でタブを押すと、私の場合、望ましくない動作であるすべてのテキストが選択されます。
はこれを見ている:
function setCaretPosition(elem, caretPos) {
if (elem == null) return;
if (elem.createTextRange) {
var range = elem.createTextRange();
range.move('character', caretPos);
range.select();
} else if (elem.selectionStart) {
elem.focus();
elem.setSelectionRange(caretPos, caretPos);
} else {
elem.focus();
}
}
$(document).ready(function() {
$('input').focus(function() {
setCaretPosition(this, 0);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input1" value=" km/h" />
<input type="text" id="input2" value=" kg" />
- あなたが入力のいずれかの内部をクリックすると、キャレットが最初に設定されています。
- タブ入力間にキャレットが設定されていません。代わりに、入力内容全体が強調表示されます。
タブナビゲーションを使用すると、テキスト入力がその内容をハイライト表示しないようにするにはどうすればよいですか?
私はsetTimeout
を使わないで答えが好きです(もし可能であれば)。単にChromeとエクスプローラで
[JavaScriptを使用してすべてのテキストの選択を解除する機能はありますか?](http://stackoverflow.com/questions/6562727/is-there-a-function-to-deselect-all-text- use-javascript) – imtheman
重複していると思われる場合は、その重複を理由としてクローズするのはなぜですか? –
をクリックすると正常に機能していますか?クリックするとキャレットは位置0に移動しません! –