выделять текст в текстовом поле при нажатии? - PullRequest
1 голос
/ 17 декабря 2009

как сделать так, чтобы текст в текстовом поле выделялся, когда пользователь нажимал на поле ввода текста?

Я использовал этот код:

  $("input[type=text]").focus(function() {
      $(this).select();
  });

но в сафари это не работает. а в FF иногда работает.

Ответы [ 4 ]

3 голосов
/ 17 декабря 2009

Метод select() в jQuery просто вызывает событие выбора для всех сопоставленных объектов. Вам нужно сделать что-то более необычное, если вы хотите манипулировать выделенным диапазоном текста в текстовом поле. Современные браузеры ведут себя по-разному.

Следующий код должен работать в Chrome, Firefox, IE, Safari и Opera:

<input type="text" id="textBox" />
<script type="text/javascript">
$(document).ready(function(){
    function textBox_click(ev) {
        if (this.createTextRange) {
            // This is for IE and Opera.
            range = this.createTextRange();
            range.moveEnd('character', this.value.length);
            range.select();
        } else if (this.setSelectionRange) {
            // This is for Mozilla and WebKit.
            this.setSelectionRange(0, this.value.length);
        }
    }

    $('#textBox').click(textBox_click);
});
</script>
0 голосов
/ 13 мая 2011

Я просто использую это в своем HTML:

... onclick="this.select()" 
0 голосов
/ 17 декабря 2009

Это работает для меня в Opera, FF, IE

$("input[type=text]").focus(function() {
    this.select();
});
0 голосов
/ 17 декабря 2009

Попробуйте:

$("input[type=text]").focus().select();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...