HTMLTextAreaElement
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
インスタンスプロパティ
親インターフェイスである HTMLElement
から継承したプロパティもあります。
autocomplete
-
文字列で、この要素の
autocomplete
属性を表しいます。 cols
-
数値で、この要素の
cols
属性を表します。これはテキストエリアの表示上の幅を示します。 defaultValue
-
文字列で、このコントロールの既定値を表します。
Node.textContent
プロパティのように動作します。 dirName
-
文字列で、この要素の書字方向を表します。
disabled
-
論理値で、この要素の
disabled
属性を表します。これは、このコントロールが操作できない状態を示します。 form
読取専用-
親フォーム要素への参照を返します。この要素がフォーム要素配下にない場合、任意の
要素の
id
属性もしくはnull
値になります。 labels
読取専用-
この要素に関連付けられた
要素の
NodeList
を返します。 maxLength
-
数値で、この要素の
maxlength
属性を表します。これはユーザーが入力できる最大文字数を示します。この制約は値が変更されたときのみ評価されます。 minLength
-
数値で、この要素の
minlength
属性を表します。これはユーザーが入力できる最小文字数を示します。この制約は値が変更されたときのみ評価されます。 name
-
文字列で、この要素の
name
属性を表します。このコントロールの名前が入ります。 placeholder
-
文字列で、この要素の
placeholder
属性を表します。これは利用者がこのコントロールに入力するに当たっての助言が入ります。 readOnly
-
論理値で、この要素の
readonly
属性を表します。ユーザーがこのコントロールの値を変更できないことを示します。 required
-
論理値で、この要素の
required
属性を表します。これはユーザーがフォームを送信する前に値を指定しなければならないことを示します。 rows
-
数値で、この要素の
rows
属性を表します。このコントロールに表示できるテキストの行数を示します。 selectionDirection
-
文字列で、選択が行われた方向を表します。これは選択が現在のロケールで先頭から末尾の方向に行われた場合は
forward
、逆方向ならばbackward
です。方向が不明であればnone
になることもあります。 selectionEnd
-
数値で、選択中のテキストの終了位置を表します。テキストが選択されていない場合は、入力カーソルの次の文字の位置が入ります。値を設定すると、コントロールは
setSelectionRange()
がこの値を第 2 引数として、selectionStart
を第 1 引数として呼び出されたかのように動作します。 selectionStart
-
数値で、選択中のテキストの開始位置を表します。テキストが選択されていない場合は、入力カーソルの次の文字の位置が入ります。値を設定すると、コントロールは
setSelectionRange()
がこの値を第1引数として、selectionEnd
を第 2 引数として呼び出されたかのように動作します。 textLength
読取専用-
このコントロールの
value
のコードポイント数を返します。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()
を使用するか、イベントリスナーをこのインターフェイスの onイベント名
プロパティに代入するかしてください。
select
イベント-
一部のテキストが選択されたときに発行されます。
selectionchange
イベント
例
自動拡張するテキストエリアの例
入力していくとテキストエリアが自動拡張するようにします。
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
HTML タグを挿入する例
いくつかの HTML タグをテキストエリアに挿入します。
function insert(startTag, endTag) {
const textArea = document.myForm.myTextArea;
const start = textArea.selectionStart;
const end = textArea.selectionEnd;
const oldText = textArea.value;
const prefix = oldText.substring(0, start);
const inserted = startTag + oldText.substring(start, end) + endTag;
const suffix = oldText.substring(end);
textArea.value = `${prefix}${inserted}${suffix}`;
const newStart = start + startTag.length;
const newEnd = end + startTag.length;
textArea.setSelectionRange(newStart, newEnd);
textArea.focus();
}
function insertURL() {
const newURL = prompt("リンクの完全な URL を入力してください。");
if (newURL) {
insert(``, "");
} else {
document.myForm.myTextArea.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("", ""));
em.addEventListener("click", (e) => insert("", ""));
link.addEventListener("click", (e) => insertURL());
code.addEventListener("click", (e) => insert("", "
"));
内部の span をリンクのように動作させるよう装飾する CSS です。
.intLink {
cursor: pointer;
text-decoration: underline;
color: #0000ff;
}
仕様書
Specification |
---|
HTML # htmltextareaelement |