質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

1278閲覧

react-hook-form カスタムValidateのやり方について

prr4e

総合スコア73

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2022/01/08 17:39

お世話になっております。

仕事の関連で、昨日よりTypescript+reactの初めて触り始めました。

入力フォームのユーザーIDにて
電話番号またはメールアドレスを入力できるようにしているのですが、
バリデーションのメッセージもそれぞれ変えたいと思っています。
どうやったらよいのか分からずご存じだったらご教授いただけますでしょうか。

■要件
ユーザーID バリデーションルール
・電話番号だったら、携帯番号または11桁でなければアラートメッセージを表示
・メールアドレスだったら、RFCに違反していたらアラートメッセージを表示

■ソース(抜粋)

const { register, formState: {errors}, handleSubmit, setValue} = useForm<Form>({ mode: 'onBlur', reValidateMode : 'onChange', criteriaMode: 'all', defaultValues: { country: 'JP' } }) const login = async (data: SignInForm) => { if (data.userid.indexOf('@') === -1) { 電話番号に対する複数の条件が記載されており、    こちらへの転記は割愛しますが、onSubmitイベントでは    正常に動いていることが確認できました。 } } <form id="login" name="login" onSubmit=handleSubmit(login) > <input type='text' id='userid' name='userid' {...register("userid",{ required:'ユーザーIDを入力してください' validate : こちらにメールアドレスやパスワードの条件を記載したいと思っています。 } })} /> {errors.userid && <p>{errors.userid?.message}</p>

上記Validatenのイベントには以下のように使用した方がいいのでしょうか。
参考:https://www.fixes.pub/program/186772.html

const validate = (value) => { if (value.indexOf('@') === -1) { if (!isValidPhoneNumber(value)) { // return return i18nText.login.login.error } } return true }

以上、宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

こちらいろんな記事を読みなんとか対応が出来ました。

投稿2022/03/13 07:35

prr4e

総合スコア73

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問