HTMLTextAreaElement
Базовая поддержка Широко доступна *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Интерфейс HTMLTextAreaElement предоставляет специальные свойства и методы для управления макетом и представлением элементов <textarea>.
Свойства экземпляра
Также наследует свойства от родительского интерфейса, HTMLElement.
autocomplete-
Строка, представляющая атрибут
autocompleteэлемента. cols-
Число, представляющее атрибут
colsэлемента, указывающее видимую ширину текстовой области. defaultValue-
Строка, представляющая значение по умолчанию элемента управления, которое ведет себя как свойство
Node.textContent. dirName-
Строка, представляющая направление элемента.
disabled-
Булево значение, представляющее атрибут
disabledэлемента, указывающее, что элемент управления недоступен для взаимодействия. -
formТолько для чтения -
Возвращает ссылку на родительский элемент формы. Если этот элемент не содержится в элементе формы, он может быть атрибутом
idлюбого элемента<form>в том же документе или значениемnull. -
labelsТолько для чтения -
Возвращает список
NodeListэлементов<label>, связанных с этим элементом. maxLength-
Число, представляющее атрибут
maxlengthэлемента, указывающее максимальное количество символов, которое пользователь может ввести. Это ограничение проверяется только при изменении значения. minLength-
Число, представляющее атрибут
minlengthэлемента, указывающее минимальное количество символов, которое пользователь может ввести. Это ограничение проверяется только при изменении значения. name-
Строка, представляющая атрибут
nameэлемента, содержащая имя элемента управления. placeholder-
Строка, представляющая атрибут
placeholderэлемента, содержащая подсказку для пользователя о том, что следует ввести в элемент управления. readOnly-
Булево значение, представляющее атрибут
readonlyэлемента, указывающее, что пользователь не может изменить значение элемента управления. required-
Булево значение, представляющее атрибут
requiredэлемента, указывающее, что пользователь должен указать значение перед отправкой формы. rows-
Число, представляющее атрибут
rowsэлемента, указывающее количество видимых строк текста для элемента управления. selectionDirection-
Строка, представляющая направление, в котором произошло выделение. Это
forwardесли выделение производилось в направлении от начала к концу текущего региона, илиbackwardдля обратного направления. Это также может бытьnoneесли направление неизвестно. selectionEnd-
Число, представляющее индекс конца выделенного текста. Если текст не выделен, содержит индекс символа, следующего за курсором ввода. При установке элемент управления ведет себя так, как если бы была вызвана функция
setSelectionRange()с этим значением в качестве второго аргумента, аselectionStart- в качестве первого. selectionStart-
Число, представляющее индекс начала выделенного текста. Если текст не выделен, содержит индекс символа, следующего за курсором ввода. При установке элемент управления ведет себя так, как если бы была вызвана функция
setSelectionRange()с этим значением в качестве первого аргумента иselectionEndв качестве второго. -
textLengthТолько для чтения -
Возвращает количество кодовых точек в элементе управления. То же, что и чтение
value.length. -
typeТолько для чтения -
Возвращает строку
textarea. -
validationMessageТолько для чтения -
Возвращает локализованное сообщение, описывающее ограничения валидации, которым не удовлетворяет элемент управления (если таковые имеются). Это пустая строка, если элемент управления не является кандидатом для валидации ограничений (
willValidate-false), или он удовлетворяет своим ограничениям. -
validityТолько для чтения -
Возвращает состояние валидности этого элемента.
value-
Строка, представляющая исходное значение, содержащееся в элементе управления.
-
willValidateТолько для чтения -
Возвращает, является ли элемент кандидатом для валидации ограничений.
falseесли какие-либо условия не позволяют ему выполнять валидацию ограничений, включая его свойствоreadOnlyилиdisabledравноtrue. wrap-
Строка, представляющая атрибут
wrapэлемента, указывающая, как элемент управления переносит текст.
Методы экземпляра
Также наследует методы от родительского интерфейса, HTMLElement.
checkValidity()-
Возвращает
false, если элемент может быть проверен на соответствие ограничениям и не удовлетворяет им. В этом случае он также вызывает отменяемое событиеinvalidв элементе управления. Возвращаетtrue, если элемент управления не может быть проверен на соответствие ограничениям или если он им удовлетворяет. reportValidity()-
Этот метод сообщает пользователю о проблемах с ограничениями элемента, если таковые имеются. Если проблемы есть, он вызывает отменяемое событие
invalidв элементе и возвращаетfalse; если проблем нет, возвращаетtrue. select()-
Выделяет содержимое элемента управления.
setCustomValidity()-
Устанавливает пользовательское сообщение об ошибке валидации для элемента. Если это сообщение не пустое, то у элемента есть ошибка пользовательской валидации и он не проходит валидацию.
setRangeText()-
Заменяет диапазон текста в элементе новым текстом.
setSelectionRange()-
Выделяет диапазон текста в элементе (но не фокусирует его).
События
Также наследует события от родительского интерфейса, HTMLElement.
Прислушивайтесь к этим событиям, используя addEventListener() или назначив обработчик событий свойству oneventname этого интерфейса:
-
selectсобытие -
Срабатывает, когда какой-то текст был выделен.
-
selectionchangeсобытие Экспериментально -
Срабатывает, когда выделение текста в элементе
<textarea>было изменено.
Примеры
Пример автопрокручивающейся области ввода
Сделайте область ввода (textarea) автопрокручивающейся при вводе текста:
JavaScript
function autoGrow(field) {
if (field.scrollHeight > field.clientHeight) {
field.style.height = `${field.scrollHeight}px`;
}
}
CSS
textarea.no-scrollbars {
overflow: hidden;
width: 300px;
height: 100px;
}
HTML
<form>
<fieldset>
<legend>Your comments</legend>
<p><textarea class="no-scrollbars" onkeyup="autoGrow(this);"></textarea></p>
<p><input type="submit" value="Send" /></p>
</fieldset>
</form>
Пример вставки HTML-тегов
Вставьте некоторые HTML-теги в область ввода (textarea).
JavaScript
function insert(startTag, endTag) {
const textArea = document.myForm.myTxtArea;
const selectionStart = textArea.selectionStart;
const selectionEnd = textArea.selectionEnd;
const oldText = textArea.value;
const prefix = oldText.substring(0, selectionStart);
const inserted =
startTag + oldText.substring(selectionStart, selectionEnd) + endTag;
const suffix = oldText.substring(selectionEnd);
textArea.value = `${prefix}${inserted}${suffix}`;
const newSelectionStart = selectionStart + startTag.length;
const newSelectionEnd = selectionEnd + startTag.length;
textArea.setSelectionRange(newSelectionStart, newSelectionEnd);
textArea.focus();
}
function insertURL() {
const newURL = prompt("Enter the full URL for the link");
if (newURL) {
insert(`<a href="${newURL}">`, "</a>");
} else {
document.myForm.myTxtArea.focus();
}
}
const strong = document.querySelector("#format-strong");
const em = document.querySelector("#format-em");
const link = document.querySelector("#format-link");
const code = document.querySelector("#format-code");
strong.addEventListener("click", (e) => insert("<strong>", "</strong>"));
em.addEventListener("click", (e) => insert("<em>", "</em>"));
link.addEventListener("click", (e) => insertURL());
code.addEventListener("click", (e) => insert("\n<code>\n", "\n</code>\n"));
CSS
CSS для оформления внутреннего span, чтобы он вел себя как ссылка:
.intLink {
cursor: pointer;
text-decoration: underline;
color: #0000ff;
}
HTML:
<form name="myForm">
<p>
[
<span class="intLink" id="format-strong"><strong>Bold</strong></span> |
<span class="intLink" id="format-em"><em>Italic</em></span> |
<span class="intLink" id="format-link">URL</span> |
<span class="intLink" id="format-code">code</span> ]
</p>
<p>
<textarea name="myTxtArea" rows="10" cols="50">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut facilisis, arcu vitae adipiscing placerat, nisl lectus accumsan nisi, vitae iaculis sem neque vel lectus. Praesent tristique commodo lorem quis fringilla. Sed ac tellus eros. Sed consectetur eleifend felis vitae luctus. Praesent sagittis, est eget bibendum tincidunt, ligula diam tincidunt augue, a fermentum odio velit eget mi. Phasellus mattis, elit id fringilla semper, orci magna cursus ligula, non venenatis lacus augue sit amet dui. Pellentesque lacinia odio id nisi pulvinar commodo tempus at odio. Ut consectetur eros porttitor nunc mollis ultrices. Aenean porttitor, purus sollicitudin viverra auctor, neque erat blandit sapien, sit amet tincidunt massa mi ac nibh. Proin nibh sem, bibendum ut placerat nec, cursus et lacus. Phasellus vel augue turpis. Nunc eu mauris eu leo blandit mollis interdum eget lorem.
</textarea>
</p>
</form>
Спецификации
| Спецификация |
|---|
| HTML # htmltextareaelement |
Совместимость с браузерами
| Настольный | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
HTMLTextAreaElement |
1 | 12 | 1 | 8 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | ≤37 |
autocomplete |
66 | 79 | 59 | 53 | 9.1 | 66 | 59 | 47 | 9.3 | 9.0 | 66 |
checkValidity |
4 | 12 | 4 | ≤12.1 | 5 | 18 | 4 | ≤12.1 | 5 | 1.0 | ≤37 |
cols |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
defaultValue |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
dirName |
17 | 79 | 116 | ≤12.1 | 6 | 18 | 116 | ≤12.1 | 6 | 1.0 | 4.4 |
disabled |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
form |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
labels |
6 | 18 | 56 | ≤12.1 | 5.1 | 18 | 56 | ≤12.1 | 5 | 1.0 | 3 |
maxLength |
4 | 12 | 4 | ≤12.1 | 5 | 18 | 4 | ≤12.1 | 5 | 1.0 | ≤37 |
minLength |
40 | 17 | 51 | 27 | 10.1 | 40 | 51 | 27 | 10.3 | 4.0 | 40 |
name |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
placeholder |
4 | 12 | 4 | ≤12.1 | 5 | 18 | 4 | ≤12.1 | 5 | 1.0 | ≤37 |
readOnly |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
reportValidity |
40 | 17 | 49 | 27 | 10.1 | 40 | 64 | 27 | 10.3 | 4.0 | 40 |
required |
4 | 12 | 4 | ≤12.1 | 5 | 18 | 4 | ≤12.1 | 5 | 1.0 | ≤37 |
rows |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
select |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
select_event |
1 | 12 | 6 | ≤12.1 | 1 | 18 | 6 | ≤12.1 | 1 | 1.0 | 4.4 |
selectionDirection |
15 | 79 | 8 | ≤12.1 | 6 | 18 | 8 | ≤12.1 | 6 | 1.0 | 4.4 |
selectionEnd |
1 | 12 | 1 | ≤12.1 | 1.3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
selectionStart |
1 | 12 | 1 | ≤12.1 | 1.3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
selectionchange_event |
НетСобытиеselectionchange срабатывает на Document, см. Document событие selectionchange. См. ошибку 40840956 для срабатывания события на элементах <textarea>. |
НетСобытиеselectionchange срабатывает на Document, см. Document событие selectionchange. См. ошибку 40840956 для срабатывания события на элементах <textarea>. |
92 | НетСобытиеselectionchange срабатывает на Document, см. Document событие selectionchange. См. ошибку 40840956 для срабатывания события на элементах <textarea>. |
Нет | НетСобытиеselectionchange срабатывает на Document, см. Document событие selectionchange. См. ошибку 40840956 для срабатывания события на элементах <textarea>. |
92 | НетСобытиеselectionchange срабатывает на Document, см. Document событие selectionchange. См. ошибку 40840956 для срабатывания события на элементах <textarea>. |
Нет | НетСобытиеselectionchange срабатывает на Document, см. Document событие selectionchange. См. ошибку 40840956 для срабатывания события на элементах <textarea>. |
НетСобытиеselectionchange срабатывает на Document, см. Document событие selectionchange. См. ошибку 40840956 для срабатывания события на элементах <textarea>. |
|---|---|---|---|---|---|---|---|---|---|---|---|
setCustomValidity |
4Этот метод обновляет только всплывающее окно с ошибкой валидации, а не всплывающую подсказку, которая появляется при наведении курсора на элемент, см. ошибку 41380670. |
12 | 4 | ≤12.1 | 5 | 18Этот метод обновляет только всплывающее окно с ошибкой валидации, а не всплывающую подсказку, которая появляется при наведении курсора на элемент, см. ошибку 41380670. |
4 | ≤12.1 | 5 | 1.0Этот метод обновляет только всплывающее окно с ошибкой валидации, а не всплывающую подсказку, которая появляется при наведении курсора на элемент, см. ошибку 41380670. |
≤37 |
setRangeText |
24 | 79 | 27 | 15 | 7 | 25 | 27 | 14 | 7 | 1.5 | 4.4 |
setSelectionRange |
1 | 12 | 1 | ≤12.1 | 1.3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
textLength |
4 | 17 | 1 | ≤12.1 | 5 | 18 | 4 | ≤12.1 | 4 | 1.0 | ≤37 |
type |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
validationMessage |
5 | 12 | 4 | ≤12.1 | 5 | 18 | 4 | ≤12.1 | 5 | 1.0 | ≤37 |
validity |
4 | 12 | 4 | ≤12.1 | 5 | 18 | 4 | ≤12.1 | 5 | 1.0 | ≤37 |
value |
1 | 12 | 1 | ≤12.1 | 1 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
willValidate |
2 | 12 | 4 | ≤12.1 | 4 | 18 | 4 | ≤12.1 | 3.2 | 1.0 | ≤37 |
wrap |
16 | 12 | 4 | ≤12.1 | 6 | 18 | 4 | ≤12.1 | 6 | 1.0 | 4.4 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement