jQuery сосредоточиться на содержании ввода / textarea - не работает должным образом в IE8 - PullRequest
1 голос
/ 10 мая 2010

Я хочу, чтобы поля ввода на моем сайте выделяли весь текст, когда пользователь впервые нажимает на них, но в IE8 текст выделяется на доли секунды, а затем возвращается к нормальному состоянию. Прекрасно работает в ФФ.

Мой код JS:

$(document).ready(function () { //HTML DOM document is ready
    // Add this behavior to all text fields
    $("input[type='text'], textarea").live("focus", function(){
                                         // Select field contents
                                         this.select();
                                         });
});

Есть идеи? Я попытался добавить ".focus ()" после ".select ()" и достаточно причудливо это работает, но выдает множество ошибок js в FF и IE.

Спасибо

1 Ответ

2 голосов
/ 10 мая 2010

Попробуйте .select() для объекта jQuery вместо элемента DOM и измените событие на click. Когда вы вкладываете в поле, текст должен быть выбран по умолчанию.

$("input[type='text']").live("click", function(){
       // Select field contents
      $(this).select();
  });

Ну, этот почему-то пинал меня сзади. Я мог бы поклясться, что делал это раньше, но не мог понять, как.

Это лучшее, что я придумал. Он откладывает .select() с помощью setTimeout() до тех пор, пока не сработает событие click. Может быть, есть лучший способ? Надеюсь, это поможет.

$('input[type=text]').live('focus', function() {
    var $th = $(this);
    setTimeout(function(){$th.select();}, 50);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...