IE: курсор, чтобы начать ввод - PullRequest
5 голосов
/ 13 февраля 2012

В текстовом вводе, если текст существует, и вы нажимаете, чтобы добавить больше, курсор автоматически переходит к началу.Кажется, это происходит только в IE.

Я уже некоторое время гуглю это и пробовал множество примеров, которые я нашел, но, похоже, ничего не работает.К сожалению, входные данные записаны в jsp, который я не могу контролировать, и я думаю, что единственная причина, по которой у меня возникла эта проблема, заключается в том, что там есть какой-то жестко закодированный javascript.

<input type="text" id="simpleSearchString" class="text" onfocus="javascript:this.value=this.value.replace(/^\s+|\s+$/g,'')" onblur="javascript:this.value=this.value.replace(/^\s+|\s+$/g,'')" value="" maxlength="255" name="searchCriteria.simpleSearchString">

Все, что я хочусделать действительно удалить этот прыжок.

Я думал, что добавление следующего кода помогло бы, но, похоже, ничего не помогло:

jQuery("input#simpleSearchString").focus();

Я не уверен на 100%, что dev пытается достичь с помощью javascript: это ... и т. д. "но, возможно, я мог бы найти способ удалить его.

1 Ответ

3 голосов
/ 13 февраля 2012

Вы можете убить эти встроенные события и подключить свои собственные;

var el = $("#simpleSearchString");
el[0].onfocus = el[0].onblur = null;

$(el).on("focus blur", function(e) {
    this.value = $.trim(this.value);    
    if ((e.type === "focus") && this.createTextRange) {
        var r = this.createTextRange();
        r.moveStart("character", this.value.length);
        r.select();
    }
});

(Предполагается, что это единственный IE, требующий изменения положения каретки)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...