Я хочу выделить весь текст внутри текстового поля, когда пользователь нажимает на текстовое поле. Я пробовал onclick="this.focus()"
, но это ничего не делало. Я попробовал onclick="this.highlight()"
, но это вызвало ошибку. Что мне делать?
Выделить весь текст в textarea
Ответ 1
Это может раздражать ваших пользователей, поскольку это предотвращает полезное поведение по умолчанию для размещения каретки, где пользователь щелкнул, и поэтому я рекомендую против нее в целом. Тем не менее, решение для большинства браузеров onclick="this.select()"
.
Однако это не будет работать в Chrome [UPDATE February 2014: теперь он работает в последних версиях Chrome]. Обходной путь и общий фон по этой проблеме см. В следующем вопросе: jQuery - выберите весь текст из текстового поля
Ответ 2
onclick="this.focus();this.select()" readonly="readonly"
Ответ 3
<script type="text/javascript">
function SelectAll(id)
{
document.getElementById(id).focus();
document.getElementById(id).select();
}
</script>
Textarea:<br>
<textarea rows="3" id="txtarea" onClick="SelectAll('txtarea');" style="width:200px" >This text you can select all by clicking here </textarea>
Я получил этот код здесь
Ответ 4
onclick="this.focus()"
является избыточным, поскольку метод focus()
совпадает с нажатием в текстовом поле (но он помещает курсор в конец текста).
highlight()
не является даже функцией, если, конечно, вы не создали ее где-то еще.
Вывод: do this.select()
Ответ 5
Для достижения желаемого результата вам нужно использовать функцию .focus(), а также функцию .select() Javascript.
Проверьте приведенную ниже ссылку:
http://www.plus2net.com/javascript_tutorial/textarea-onclick.php
Ответ 6
Чтобы завершить другие ответы, возможно, вы захотите скопировать код/текст, который вы только что нажали, поэтому используйте:
onclick="this.focus();this.select();document.execCommand('copy')"
Ответ 7
Кажется, больше браузеров, поддерживающих setSelectionRange()
чем select()
1 способ: - использовать setSelectionRange()
https://caniuse.com/#search=setSelectionRange
const my_textarea = document.getElementById("my_textarea");
document.getElementById("my_but").onclick = function () {
if(my_textarea.value !== ""){
my_textarea.onfocus = function () {
my_textarea.setSelectionRange(0, my_textarea.value.length);
my_textarea.onfocus = undefined;
}
my_textarea.focus();
}
}
<textarea id="my_textarea" name="text">1234567</textarea>
<br>
<button id="my_but">Select</button>