メインコンテンツまでスキップ
バージョン: v8

ion-textarea

scoped

The textarea component is used for multi-line text input. A native textarea element is rendered inside of the component. The user experience and interactivity of the textarea component is improved by having control over the native textarea.

Unlike the native textarea element, the Ionic textarea does not support loading its value from the inner content. The textarea value should be set in the value attribute.

The textarea component accepts the native textarea attributes in addition to the Ionic properties.

Basic Usage

Labels

Labels should be used to describe the textarea. They can be used visually, and they will also be read out by screen readers when the user is focused on the textarea. This makes it easy for the user to understand the intent of the textarea. Textarea has several ways to assign a label:

  • label property: used for plaintext labels
  • label slot: used for custom HTML labels (experimental)
  • aria-label: used to provide a label for screen readers but adds no visible label

Label Placement

Labels will take up the width of their content by default. Developers can use the labelPlacement property to control how the label is placed relative to the control.

Label Slot (experimental)

While plaintext labels should be passed in via the label property, if custom HTML is needed, it can be passed through the label slot instead.

Note that this feature is considered experimental because it relies on a simulated version of Web Component slots. As a result, the simulated behavior may not exactly match the native slot behavior.

No Visible Label

If no visible label is needed, developers should still supply an aria-label so the textarea is accessible to screen readers.

Filled Textareas

Material Design offers filled styles for a textarea. The fill property on the item can be set to either "solid" or "outline".

Filled textareas can be used on iOS by setting the textarea's mode to md.

警告

Textareas that use fill should not be used in an ion-item due to styling conflicts between the components.

Helper & Error Text

Helper and error text can be used inside of a textarea with the helperText and errorText property. The error text will not be displayed unless the ion-invalid and ion-touched classes are added to the ion-textarea. This ensures errors are not shown before the user has a chance to enter data.

In Angular, this is done automatically through form validation. In JavaScript, React and Vue, the class needs to be manually added based on your own validation.

Textarea Counter

The textarea counter is text that displays under a textarea to notify the user of how many characters have been entered out of the total that the textarea will accept. When adding counter, the default behavior is to format the value that gets displayed as inputLength / maxLength. This behavior can be customized by passing in a formatter function to the counterFormatter property.

Autogrow

When the autoGrow property is set to true, the textarea will grow and shrink based on its contents.

Clear on Edit

Setting the clearOnEdit property to true will clear the textarea after it has been blurred and then typed in again.

Start and End Slots (experimental)

The start and end slots can be used to place icons, buttons, or prefix/suffix text on either side of the textarea.

Note that this feature is considered experimental because it relies on a simulated version of Web Component slots. As a result, the simulated behavior may not exactly match the native slot behavior.

注記

In most cases, Icon components placed in these slots should have aria-hidden="true". See the Icon accessibility docs for more information.

If slot content is meant to be interacted with, it should be wrapped in an interactive element such as a Button. This ensures that the content can be tabbed to.

Theming

Interfaces

TextareaChangeEventDetail

interface TextareaChangeEventDetail {
value?: string | null;
}

TextareaCustomEvent

While not required, this interface can be used in place of the CustomEvent interface for stronger typing with Ionic events emitted from this component.

interface TextareaCustomEvent extends CustomEvent {
detail: TextareaChangeEventDetail;
target: HTMLIonTextareaElement;
}

Properties

autoGrow

Descriptiontrueの場合、textareaコンテナはtextareaの内容に応じて拡大・縮小します。
Attributeauto-grow
Typeboolean
Defaultfalse

autocapitalize

Descriptionテキスト値がユーザーによって入力/編集される際に、自動的に大文字にするかどうか、またどのようにするかについて示します。利用可能なオプション: "off", "none", "on", "sentences", "words", "characters".
Attributeautocapitalize
Typestring
Default'none'

autofocus

Descriptionネイティブの入力要素に autofocus 属性 を設定します。 ページロード時に要素がフォーカスされるには、これだけでは不十分かもしれません。詳しくはmanaging focusを参照してください。
Attributeautofocus
Typeboolean
Defaultfalse

clearOnEdit

Descriptiontrueの場合、編集時にフォーカスが当たった後、値がクリアされる。
Attributeclear-on-edit
Typeboolean
Defaultfalse

color

Descriptionアプリケーションのカラーパレットから使用する色を指定します。デフォルトのオプションは以下の通りです。 "primary", "secondary", "tertiary", "success", "warning", "danger", "light", "medium", と "dark" です.色に関する詳しい情報は theming を参照してください。
Attributecolor
Type"danger" | "dark" | "light" | "medium" | "primary" | "secondary" | "success" | "tertiary" | "warning" | string | undefined
Defaultundefined

cols

Descriptionテキストコントロールの可視幅を、平均文字幅で指定します。指定する場合は、正の整数である必要があります。
Attributecols
Typenumber | undefined
Defaultundefined

counter

Descriptiontrueの場合、文字カウンタが使用された文字の比率と総文字数制限を表示します。カウンターを正しく計算するために、開発者は maxlength プロパティも設定する必要があります。
Attributecounter
Typeboolean
Defaultfalse

counterFormatter

Descriptionカウンターのテキストをフォーマットするためのコールバック。デフォルトでは、カウンタのテキストは "itemLength / maxLength" に設定される。 コールバック内から this にアクセスする必要がある場合は https://ionicframework.com/docs/troubleshooting/runtime#accessing-this を参照。
Attributecounter-formatter
Type((inputLength: number, maxLength: number) => string) | undefined
Defaultundefined

debounce

Descriptionキーを押すたびに ionInput イベントが発生するまでの待ち時間をミリ秒単位で設定します。
Attributedebounce
Typenumber | undefined
Defaultundefined

disabled

Descriptiontrueの場合、ユーザはテキストエリアと対話することができません。
Attributedisabled
Typeboolean
Defaultfalse

enterkeyhint

Descriptionどのエンターキーを表示するかのブラウザへのヒント。指定可能な値。"enter", "done", "go", "next", "previous", "search", and "send".
Attributeenterkeyhint
Type"done" | "enter" | "go" | "next" | "previous" | "search" | "send" | undefined
Defaultundefined

errorText

Descriptionテキストエリアの下に配置され、エラーが検出されたときに表示されるテキストです。
Attributeerror-text
Typestring | undefined
Defaultundefined

fill

Descriptionアイテムの塗りつぶし。もし "solid" ならば、アイテムは背景を持つようになります。もし "outline" ならば、アイテムはボーダー付きの透明なものになります。mdモードでのみ使用可能です。
Attributefill
Type"outline" | "solid" | undefined
Defaultundefined

helperText

Descriptiontextareaの下に配置され、エラーが検出されなかった場合に表示されるテキストです。
Attributehelper-text
Typestring | undefined
Defaultundefined

inputmode

Descriptionどのキーボードを表示するかのブラウザへのヒント。指定可能な値。"none", "text", "tel", "url", "email", "numeric", "decimal", and "search".
Attributeinputmode
Type"decimal" | "email" | "none" | "numeric" | "search" | "tel" | "text" | "url" | undefined
Defaultundefined

label

Descriptiontextareaに関連付けられた可視ラベル。 プレーンテキストのラベルをレンダリングする必要がある場合に使用する。 両方が使用されている場合、label プロパティが label スロットよりも優先される。
Attributelabel
Typestring | undefined
Defaultundefined

labelPlacement

Descriptionテキストエリアと相対的にラベルを配置する場所。"start":ラベルはLTRではテキストエリアの左側に、RTLでは右側に表示されます。"end":ラベルはLTRではテキストエリアの右側に、RTLでは左側に表示されます。"floating":ラベルは、テキストエリアにフォーカスが当たっているか、値がある場合、小さく表示され、テキストエリアの上に表示されます。それ以外の場合はtextareaの上に表示されます。"stacked":テキストエリアがぼやけた状態や値がない場合でも、ラベルは小さく表示され、テキストエリアの上に表示されます。固定":ラベルの幅が固定される以外は、"start"`と同じ動作になります。長いテキストは省略記号("...")で切り捨てられます。
Attributelabel-placement
Type"end" | "fixed" | "floating" | "stacked" | "start"
Default'start'

maxlength

Descriptionこの属性は、ユーザが入力できる最大文字数を指定します。
Attributemaxlength
Typenumber | undefined
Defaultundefined

minlength

Descriptionこの属性は、ユーザーが入力できる最小の文字数を指定します。
Attributeminlength
Typenumber | undefined
Defaultundefined

mode

Descriptionmodeは、どのプラットフォームのスタイルを使用するかを決定します。

This is a virtual property that is set once during initialization and will not update if you change its value after the initial render.
Attributemode
Type"ios" | "md"
Defaultundefined

name

Descriptionフォームデータとともに送信されるコントロールの名前。
Attributename
Typestring
Defaultthis.inputId

placeholder

Description入力が値を持つ前に表示される指示文。
Attributeplaceholder
Typestring | undefined
Defaultundefined

readonly

Descriptiontrueの場合、ユーザーは値を変更することができません。
Attributereadonly
Typeboolean
Defaultfalse

required

Descriptiontrueの場合、ユーザーはフォームを送信する前に値を入力する必要があります。
Attributerequired
Typeboolean
Defaultfalse

rows

Descriptionコントロールの可視テキスト行数。
Attributerows
Typenumber | undefined
Defaultundefined

shape

Descriptionテキストエリアの形状を指定します。round "の場合、ボーダーの半径が大きくなります。
Attributeshape
Type"round" | undefined
Defaultundefined

spellcheck

Descriptiontrueの場合、その要素のスペルチェックと文法チェックが行われる。
Attributespellcheck
Typeboolean
Defaultfalse

value

Descriptiontextareaの値です。
Attributevalue
Typenull | string | undefined
Default''

wrap

Descriptionコントロールがテキストをどのように折り返すかを示します。
Attributewrap
Type"hard" | "off" | "soft" | undefined
Defaultundefined

Events

NameDescriptionBubbles
ionBlurInputのフォーカスが外れたときに発行されます。true
ionChangeonChange イベントは、ユーザが textarea の値を変更したときに発生する。ionInput イベントとは異なり、ionChangeイベントは値が変更された後に要素のフォーカスが外れたときに発生する。 このイベントは、プログラムでvalue` プロパティを設定した場合には発生しない。true
ionFocusInputにフォーカスが当たったときに発行されます。true
ionInputionInput イベントは、ユーザが textarea の値を変更するたびに発生する。ionChange イベントとは異なり、ionInput イベントは textarea の値が変更されるたびに発生する。これは通常、ユーザがキーを入力するたびに発生する。 clearOnEdit が有効な場合、ユーザが textarea をクリアするためにキーダウンを行うと、ionInput イベントが発生する。true

Methods

getInputElement

Description要素の内部で使用されるネイティブの <textarea> 要素を返します。
SignaturegetInputElement() => Promise<HTMLTextAreaElement>

setFocus

Descriptionion-textareaのネイティブ textarea にフォーカスを設定する。グローバルメソッド textarea.focus() の代わりにこのメソッドを使用する。 詳細は managing focus を参照してください。
SignaturesetFocus() => Promise<void>

CSS Shadow Parts

No CSS shadow parts available for this component.

CSS Custom Properties

NameDescription
--backgroundtextareaの背景
--border-colorヘルパーテキスト、エラーテキスト、カウンターを使用する場合のテキストエリア下のボーダーの色
--border-radiusテキストエリアの境界半径
--border-styleヘルパーテキスト、エラーテキスト、カウンター使用時のテキストエリア下のボーダーのスタイル
--border-widthヘルパーテキスト、エラーテキスト、カウンターを使用する場合のテキストエリア下のボーダーの幅
--color本文の色
--highlight-color-focusedフォーカスされたときのテキストエリアのハイライトの色
--highlight-color-invalid無効時のテキストエリア上のハイライトの色
--highlight-color-valid有効時のテキストエリアのハイライトの色
--highlight-heightテキストエリアのハイライトの高さ。mdモードにのみ適用される。
--padding-bottomテキストエリアのBottom Padding
--padding-endテキストエリアの方向が左から右の場合はRight Padding、右から左の場合はLeft Paddingを使用します。
--padding-starttextareaの方向が左から右の場合はLeft Padding、右から左の場合はRight Padding。
--padding-toptextareaのTop Padding
--placeholder-colorPlaceholderテキストの色
--placeholder-font-stylePlaceholderテキストのスタイル
--placeholder-font-weightPlaceholderテキストの重さ
--placeholder-opacityPlaceholderテキストの不透明度

Slots

NameDescription
endtextarea の末尾に表示する内容。(実験的)
labelテキストエリアに関連付けるラベルテキスト。labelPlacement`プロパティを使用して、textareaに対するラベルの位置を制御する。ラベルをカスタム HTML でレンダリングする必要がある場合に使用します。(実験的)
starttextarea の前端に表示する内容。(実験的)