Сфокусируйте поле ввода с помощью JQuery без выделения текста текущего значения - PullRequest
29 голосов
/ 18 ноября 2009
$("#myinputfield").focus();

Выполнение этого в поле ввода с уже установленным значением приводит к выбору текущего значения. Как я могу сфокусировать поле, не выделяя текст?

Ответы [ 7 ]

27 голосов
/ 18 ноября 2009

Я немного обыскал и вроде как обнаружил, что вам следует переустановить ваше значение в нужное поле после того, как оно сфокусировано.

26 голосов
/ 18 ноября 2009

Как насчет чего-то подобного, когда вы устанавливаете значение поля ввода на себя после фокусировки?

$("#myinputfield").focus().val($("#myinputfield").val());
6 голосов
/ 15 октября 2012

Другие ответы предлагают установить значение поля ввода на себя после его фокусировки. Если в Firefox курсор появляется в начале ввода, и вы хотите, чтобы он был в конце, то требуется небольшое изменение. Сначала вам нужно будет установить значение как пустое, а затем установить его на предыдущее значение.

var value = $("#myinputfield").val();
$("#myinputfield").focus().val('').val(value);
3 голосов
/ 18 ноября 2009

Вы пробовали это?

var txt = $("#myinputfield").val();
$("#myinputfield").focus();
$("#myinputfield").val( txt );
0 голосов
/ 13 августа 2015

Это решение очень хорошо работает для меня:

$("#myinputfield").focus(function (event) {
  var value = $("#myinputfield").val();
  setTimeout(function() {
    $("#myinputfield").val(value);
  },10);
});
0 голосов
/ 12 марта 2014
$(document).ready(function() {
    var $field = $("#formloginusername"),
        oldVal = $field.val();
    $field.focus().val('').val(oldVal);
});

ДЕМО: http://jsfiddle.net/X7Y8S/

Я взял код и демонстрацию из ответа Арен в другой теме, думаю, это полезно.

0 голосов
/ 19 июля 2013
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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...