FormControl
FormControl
は、フォーム要素に、ラベル、ヘルパーメッセージ、エラーメッセージなどをグループ化するために使用されるコンポーネントです。
インポート
import {FormControl,Label,HelperMessage,ErrorMessage,} from "@yamada-ui/react"
FormControl
: 子要素(Label
,HelperMessage
,ErrorMessage
)を制御するラッパーコンポーネントです。Label
: フォームのセクションに使用されるラベルのコンポーネントです。htmlFor
は、子要素に自動的に割り当てられます。HelperMessage
: フォームのセクションの説明を表示するコンポーネントです。ErrorMessage
: エラー発生時に表示されるコンポーネントです。
Label
, HelperMessage
とErrorMessage
は、省略することができます。
使い方
編集可能な例
<FormControl label="Email address"> <Input type="email" placeholder="your email address" /> </FormControl>
または、Label
を使用してカスタマイズすることも可能です。
編集可能な例
<FormControl helperMessage="We'll never share your email."> <Label color="primary">Email address</Label> <Input type="email" placeholder="your email address" /> </FormControl>
ヘルプメッセージを表示する
ヘルプメッセージを表示する場合は、helperMessage
にReactNode
を設定します。
編集可能な例
<FormControl label="Email address" helperMessage="We'll never share your email." > <Input type="email" placeholder="your email address" /> </FormControl>
または、HelperMessage
を使用してカスタマイズすることも可能です。
編集可能な例
<FormControl label="Email address"> <Input type="email" placeholder="your email address" /> <HelperMessage color="gray.300">We'll never share your email.</HelperMessage> </FormControl>
エラーメッセージを表示する
エラーメッセージを表示する場合は、isInvalid
をtrue
に設定し、errorMessage
にReactNode
を設定します。
編集可能な例
<FormControl isInvalid label="Email address" errorMessage="Email is required."> <Input type="email" placeholder="your email address" /> </FormControl>
または、ErrorMessage
を使用してカスタマイズすることも可能です。
編集可能な例
<FormControl isInvalid label="Email address"> <Input type="email" placeholder="your email address" /> <ErrorMessage color="gray.300">Email is required.</ErrorMessage> </FormControl>
ヘルプメッセージとエラーメッセージの置き換える
エラーメッセージは、isInvalid
がtrue
の場合のみ表示されます。エラーメッセージが表示されたときに、ヘルプメッセージとエラーメッセージの置き換える場合は、isReplace
をtrue
に設定します。
isReplace
プロパティを使用して、ヘルプメッセージとエラーメッセージを置き換えます。
編集可能な例
<FormControl isInvalid label="Email address" helperMessage="We'll never share your email." errorMessage="Email is required." isReplace={true} > <Input type="email" placeholder="your email address" /> </FormControl>
必須化する
必須化する場合は、isRequired
をtrue
に設定します。
編集可能な例
<FormControl isRequired label="Email address" helperMessage="We'll never share your email." errorMessage="Email is required." > <Input type="email" placeholder="your email address" /> </FormControl>
無効化する
無効化する場合は、isDisabled
をtrue
に設定します。
編集可能な例
<FormControl isDisabled label="Email address" helperMessage="We'll never share your email." errorMessage="Email is required." > <Input type="email" placeholder="your email address" /> </FormControl>
読み取り専用にする
読み取り専用にする場合は、isReadOnly
をtrue
に設定します。
編集可能な例
<FormControl isReadOnly label="Email address" helperMessage="We'll never share your email." errorMessage="Email is required." > <Input type="email" placeholder="your email address" /> </FormControl>
必須インジケーターをカスタマイズする
必須インジケーターをカスタマイズする場合は、requiredIndicator
にReactNode
を設定します。
編集可能な例
<VStack> <FormControl isRequired label="Email address" requiredIndicator={ <Tag size="sm" colorScheme="red" ms={2}> required </Tag> } > <Input type="email" placeholder="your email address" /> </FormControl> <FormControl isRequired> <Label requiredIndicator={ <Tag size="sm" colorScheme="red" ms={2}> required </Tag> } > Email address </Label> <Input type="email" placeholder="your email address" /> </FormControl> </VStack>
オプショナルインジケーターを使う
オプショナルインジケーターを使う場合は、optionalIndicator
にReactNode
を設定します。
編集可能な例
<VStack> <FormControl label="Email address" optionalIndicator={ <Tag size="sm" colorScheme="primary" ms={2}> optional </Tag> } > <Input type="email" placeholder="your email address" /> </FormControl> <FormControl> <Label optionalIndicator={ <Tag size="sm" colorScheme="primary" ms={2}> optional </Tag> } > Email address </Label> <Input type="email" placeholder="your email address" /> </FormControl> </VStack>
GitHubでこのページを編集する