この翻訳は不完全です。英語から この記事を翻訳 してください。

HTMLTextAreaElement インターフェイスは、<textarea> 要素のレイアウトと表示を操作するための特別なプロパティとメソッドを提供します。

プロパティ

form 読取専用 object: Returns a reference to the parent form element. If this element is not contained in a form element, it can be the id attribute of any <form> element in the same document or the value null.
type 読取専用 string: Returns the string textarea.
value string: Returns / Sets the raw value contained in the control.
textLength 読取専用 long: Returns the codepoint length of the control's value. Same as calling value.length
defaultValue string: Returns / Sets the control's default value, which behaves like the Node.textContent property.
placeholder string: Returns / Sets the element's placeholder attribute, containing a hint to the user about what to enter in the control.
rows unsigned long: Returns / Sets the element's rows attribute, indicating the number of visible text lines for the control.
cols unsigned long: Returns / Sets the element's cols attribute, indicating the visible width of the text area.
autofocus boolean: Returns / Sets the element's autofocus attribute, indicating that the control should have input focus when the page loads
name string: Returns / Sets the element's name attribute, containing the name of the control.
disabled boolean: Returns / Sets the element's disabled attribute, indicating that the control is not available for interaction.
HTMLTextAreaElement.labels読取専用 NodeList: Returns a list of label elements associated with this select element.
maxLength long: Returns / Sets the element's maxlength attribute, indicating the maximum number of characters the user can enter. This constraint is evaluated only when the value changes.
accessKey string: Returns / Sets the element's accesskey attribute.
readOnly boolean: Returns / Sets the element's readonly attribute, indicating that the user cannot modify the value of the control.
required boolean: Returns / Sets the element's required attribute, indicating that the user must specify a value before submitting the form.
tabIndex long: Returns / Sets the position of the element in the tabbing navigation order for the current document.
selectionStart unsigned long: Returns / Sets the index of the beginning of selected text. If no text is selected, contains the index of the character that follows the input cursor. On being set, the control behaves as if setSelectionRange() had been called with this as the first argument, and selectionEnd as the second argument.
selectionEnd unsigned long: Returns / Sets the index of the end of selected text. If no text is selected, contains the index of the character that follows the input cursor. On being set, the control behaves as if setSelectionRange() had been called with this as the second argument, and selectionStart as the first argument.
selectionDirection string: Returns / Sets the direction in which selection occurred. This is "forward" if selection was performed in the start-to-end direction of the current locale, or "backward" for the opposite direction. This can also be "none" if the direction is unknown."
validity 読取専用 ValidityState object: Returns the validity states that this element is in.
willValidate 読取専用

boolean: Returns whether the element is a candidate for constraint validation. false if any conditions bar it from constraint validation, including its readOnly or disabled property is true.

validationMessage 読取専用 string: Returns a localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (willValidate is false), or it satisfies its constraints.
autocomplete  
autocapitalize string: Returns / Sets the element's capitalization behavior for user input. Valid values are: none, off, characters, words, sentences.
inputMode  
wrap string: Returns / Sets the wrap HTML attribute, indicating how the control wraps text.

The two properties tabIndex and accessKey are inherited from HTMLElement from HTML5 on, but were defined on HTMLTextAreaElement in DOM Level 2 HTML and earlier specifications.

メソッド

blur() Removes focus from the control; keystrokes will subsequently go nowhere.
focus() Gives focus to the control; keystrokes will subsequently go to this element.
select() Selects the contents of the control.
setRangeText() Replaces a range of text in the element with new text.
setSelectionRange() Selects a range of text in the element (but does not focus it).
checkValidity() Returns false if the button is a candidate for constraint validation, and it does not satisfy its constraints. In this case, it also fires a cancelable invalid event at the control. It returns true if the control is not a candidate for constraint validation, or if it satisfies its constraints.
reportValidity()

This method reports the problems with the constraints on the element, if any, to the user. If there are problems, it fires a cancelable invalid event at the element, and returns false; if there are no problems, it returns true.

setCustomValidity(DOMstring) Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.

The two methods blur() and focus() are inherited from HTMLElement from HTML5 on, but were defined on HTMLTextAreaElement in DOM Level 2 HTML and earlier specifications.

自己成長テキストエリアの例

Make a textarea autogrow while typing:

JavaScript function:

function autoGrow (oField) {
  if (oField.scrollHeight > oField.clientHeight) {
    oField.style.height = oField.scrollHeight + "px";
  }
}

CSS:

textarea.noscrollbars {
  overflow: hidden;
  width: 300px;
  height: 100px;
}

HTML:

<form>
  <fieldset>
    <legend>Your comments</legend>
    <p><textarea class="noscrollbars" onkeyup="autoGrow(this);"></textarea></p>
    <p><input type="submit" value="Send" /></p>
  </fieldset>
</form>

HTML タグを挿入する例

Insert some HTML tags or smiles or any custom text in a textarea.
JavaScript function:

function insertMetachars(sStartTag, sEndTag) {
  var bDouble = arguments.length > 1, oMsgInput = document.myForm.myTxtArea, nSelStart = oMsgInput.selectionStart, nSelEnd = oMsgInput.selectionEnd, sOldText = oMsgInput.value;
  oMsgInput.value = sOldText.substring(0, nSelStart) + (bDouble ? sStartTag + sOldText.substring(nSelStart, nSelEnd) + sEndTag : sStartTag) + sOldText.substring(nSelEnd);
  oMsgInput.setSelectionRange(bDouble || nSelStart === nSelEnd ? nSelStart + sStartTag.length : nSelStart, (bDouble ? nSelEnd : nSelStart) + sStartTag.length);
  oMsgInput.focus();
}

CSS to decorate the internal span to behave like a link:

.intLink {
  cursor: pointer;
  text-decoration: underline;
  color: #0000ff;
}

HTML:

<form name="myForm">
<p>[&nbsp;<span class="intLink" onclick="insertMetachars('&lt;strong&gt;','&lt;\/strong&gt;');"><strong>Bold</strong></span> | <span class="intLink" onclick="insertMetachars('&lt;em&gt;','&lt;\/em&gt;');"><em>Italic</em></span> | <span class="intLink" onclick="var newURL=prompt('Enter the full URL for the link');if(newURL){insertMetachars('&lt;a href=\u0022'+newURL+'\u0022&gt;','&lt;\/a&gt;');}else{document.myForm.myTxtArea.focus();}">URL</span> | <span class="intLink" onclick="insertMetachars('\n&lt;code&gt;\n','\n&lt;\/code&gt;\n');">code</span> | <span class="intLink" onclick="insertMetachars(' :-)');">smile</span> | etc. etc.&nbsp;]</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>

最大の長さと行数の例

Create a textarea with a maximum number of characters per line and a maximum number of lines:

First, create a function that takes the text field and a key event as input and determines if any of the limits have been reached. If the limit has not been reached, it will return the key.

function checkRows(oField, oKeyEvent) {
  var nKey = (oKeyEvent || /* old IE */ window.event || /* check is not supported! */ { keyCode: 38 }).keyCode,

    // put here the maximum number of characters per line:
    nCols = 30,
    // put here the maximum number of lines:
    nRows = 5,

    nSelS = oField.selectionStart, nSelE = oField.selectionEnd,
    sVal = oField.value, nLen = sVal.length,

    nBackward = nSelS >= nCols ? nSelS - nCols : 0,
    nDeltaForw = sVal.substring(nBackward, nSelS).search(new RegExp("\\n(?!.{0," + String(nCols - 2) + "}\\n)")) + 1,
    nRowStart = nBackward + nDeltaForw,
    aReturns = (sVal.substring(0, nSelS) + sVal.substring(nSelE, sVal.length)).match(/\n/g),
    nRowEnd = nSelE + nRowStart + nCols - nSelS,
    sRow = sVal.substring(nRowStart, nSelS) + sVal.substring(nSelE, nRowEnd > nLen ? nLen : nRowEnd),
    bKeepCols = nKey === 13 || nLen + 1 < nCols || /\n/.test(sRow) || ((nRowStart === 0 || nDeltaForw > 0 || nKey > 0) && (sRow.length < nCols || (nKey > 0 && (nLen === nRowEnd || sVal.charAt(nRowEnd) === "\n"))));

  return (nKey !== 13 || (aReturns ? aReturns.length + 1 : 1) < nRows) && ((nKey > 32 && nKey < 41) || bKeepCols);
}

In the HTML we just need to hook our function to the `onkeypress` event and specify that our textarea does not accept pasting:

<form>
  <p>Textarea with fixed number of characters per line:<br />
    <textarea cols="50" rows="10" onkeypress="return checkRows(this, event);"
              onpaste="return false;"></textarea>
  </p>
</form>

仕様

仕様書 ステータス コメント
HTML Living Standard
HTMLTextAreaElement の定義
現行の標準  
HTML5
HTMLTextAreaElement の定義
勧告 The attributes tabindex and accesskey, as well as the methods blur() and focus() are now defined on HTMLElement.
The following attributes have been added: autofocus, placeholder, dirName, wrap, maxLength, required, textLength, labels, selectionStart, selectionEnd, selectionDirection, validity, validationMessage, and willValidate.
The following methods have been added: checkValidity(), setCustomValidity(), and setSelectionRange().
Document Object Model (DOM) Level 2 HTML Specification
HTMLTextAreaElement の定義
廃止された The property defaultValue doesn't contain the initial value of the value attribute, but the initial value of the content of the <textarea>.
Document Object Model (DOM) Level 1 Specification
HTMLTextAreaElement の定義
廃止された Initial definition

ブラウザの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
HTMLTextAreaElementChrome 完全対応 ありEdge 完全対応 ありFirefox 完全対応 ありIE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android ?
autocapitalizeChrome 完全対応 43Edge 未対応 なしFirefox ? IE ? Opera ? Safari ? WebView Android 未対応 なしChrome Android 完全対応 43Edge Mobile 未対応 なしFirefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
autocompleteChrome 完全対応 66Edge ? Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 66Chrome Android 完全対応 66Edge Mobile ? Firefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android ?
reportValidityChrome 完全対応 40Edge 完全対応 17Firefox 完全対応 49IE 未対応 なしOpera 完全対応 27Safari 完全対応 10WebView Android 完全対応 40Chrome Android 完全対応 40Edge Mobile ? Firefox Android 完全対応 64Opera Android 完全対応 27Safari iOS 完全対応 10Samsung Internet Android 完全対応 4.0
textLengthChrome 完全対応 47Edge 完全対応 17Firefox 完全対応 28IE 未対応 なしOpera 完全対応 30Safari 完全対応 9WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 未対応 なしFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android ?
labelsChrome 完全対応 14Edge 完全対応 18Firefox 完全対応 56IE 未対応 なしOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 未対応 なしFirefox Android 完全対応 56Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android ?

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明

ドキュメントのタグと貢献者

このページの貢献者: silverskyvicto
最終更新者: silverskyvicto,