Javascript: выделите текст в текущем поле ввода - PullRequest
0 голосов
/ 28 ноября 2011

Я хотел бы выбрать текст поля ввода, которое в данный момент имеет фокус, поэтому, когда пользователь начинает печатать, текст, который в данный момент находится в поле ввода, исчезает.Могу ли я сделать это с помощью javascript (или jquery)?

Если поле, в котором в данный момент находится фокус, не является полем ввода, ничего не происходит.

спасибо!

РЕДАКТИРОВАТЬ: Для всех отвечающих: вы все неправильно поняли (так, вероятно, мой вопрос не был ясен).Я не хочу выделять текст в тот момент, когда поле ввода получает фокус.Я хотел бы иметь функцию javascript, которая выбирает текст поля ввода, который в данный момент имеет фокус.

Ответы [ 4 ]

4 голосов
/ 28 ноября 2011

Извините, я неправильно понял, что вы искали, я думаю, что теперь я лучше понимаю Делает ли это больше того, что вы хотели достичь?

//If not using 1.7 for jquery you can use bind
$('input, textarea').on({
    focusin: function(){
        $(this).addClass("focused");
    },
    focusout: function(){
        $(this).removeClass("focused");
    }
});

function highlightText()
{
    var focused = $('input.focused,textarea.focused');

    if (focused.size()) {
        focused.get(0).select();   
    }
}

http://jsfiddle.net/GXFpR/1/

0 голосов
/ 28 ноября 2011

Это должно работать:

<html>
<head>
</head>
<body>

<input type="text" id="theTextBox" onfocus="selectText()" value="some value"></input>
<script type="text/javascript">
function selectText() {
    document.getElementById("theTextBox").select();
};
</script>
</body>
</html> 
0 голосов
/ 28 ноября 2011

Вы можете проверить с помощью onfocus, а затем использовать this.select() в качестве встроенного

  <input name="" type="text" value="test test" onfocus="this.select()" />

ОБНОВЛЕНИЕ: более универсальный подход, добавит фокус к вводам типа текста, а также ввод текста, которые не только для чтения

  window.onload = setFocus(); 

или вызовите последнее поле ввода формы

  setFocus(); 

1011 * Основной *

setFocus = function(){
  var i = [];
  i = document.getElementsByTagName("input");
    for(var t=0; t < i.length; t++){
       if(i.item(t).type == "text" && i.item(t).readOnly == false){
          i.item(t).onfocus = function (){this.select()};
     }
 }
 }
0 голосов
/ 28 ноября 2011

Вы можете попробовать что-то вроде этого? http://jsfiddle.net/z55UZ/

 $("input, textarea").focus(
     function()
     {
         this.select();
     }
  )

EDIT:

вот обновленная скрипка: http://jsfiddle.net/IrvinDominin/z55UZ/2/

В примере выбран последний сфокусированный элемент; но если вы посмотрите на код, то var childInputHasFocus и whoHasFocus никогда не будут установлены в false ... когда вы хотите остановить функцию выбора?

Где вы хотите вызвать функцию? Поскольку событие click устанавливает активный / фокусированный элемент как вызывающего.

...