$("#myinputfield").focus();
Выполнение этого в поле ввода с уже установленным значением вызывает выбор текущего значения. Как я могу сфокусировать поле, не выбирая текст?
$("#myinputfield").focus();
Выполнение этого в поле ввода с уже установленным значением вызывает выбор текущего значения. Как я могу сфокусировать поле, не выбирая текст?
Я искал вокруг, и выяснилось, что после его фокусировки вы должны повторно установить значение в нужное поле.
Как насчет чего-то подобного, когда вы задали значение поля ввода после его фокусировки?
$("#myinputfield").focus().val($("#myinputfield").val());
Другие ответы предлагают установить значение поля ввода для себя после фокусировки. Если в Firefox курсор появляется в начале ввода, и вы хотите его в конце, тогда требуется небольшая модификация. Сначала вам нужно установить значение как пустое, а затем установить его на предыдущее значение.
var value = $("#myinputfield").val();
$("#myinputfield").focus().val('').val(value);
Вы пробовали это?
var txt = $("#myinputfield").val();
$("#myinputfield").focus();
$("#myinputfield").val( txt );
function focusField(id){
var inputField = document.getElementById(id);
if (inputField != null && inputField.value.length != 0){
if (inputField.createTextRange){
var FieldRange = inputField.createTextRange();
FieldRange.moveStart('character',inputField.value.length);
FieldRange.collapse();
FieldRange.select();
}else if (inputField.selectionStart || inputField.selectionStart == '0') {
var elemLen = inputField.value.length;
inputField.selectionStart = elemLen;
inputField.selectionEnd = elemLen;
inputField.focus();
}
}else{
inputField.focus();
}
}
$(document).ready(function() {
var $field = $("#formloginusername"),
oldVal = $field.val();
$field.focus().val('').val(oldVal);
});
DEMO: http://jsfiddle.net/X7Y8S/
Я взял код и демонстрацию от ответа ahren в другой теме, я думаю, что это полезно.
Это решение работает очень хорошо для меня:
$("#myinputfield").focus(function (event) {
var value = $("#myinputfield").val();
setTimeout(function() {
$("#myinputfield").val(value);
},10);
});