お世話になっております。
仕事の関連で、昨日より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 }
以上、宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。