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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

解決済

1回答

1357閲覧

vee-validate4 useForm関数が動作しない。 Vue3

tkm0604

総合スコア554

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2022/01/28 07:00

編集2022/01/28 07:23

vee-validate4を用いてバリデーション処理を実装しています。
useForm関数を利用してバリデーションのスキーマを作成し、バリデーションの処理をまとめたいのですが、下記コードの中の
<input v-model="text">
<input v-model="title">のバリデーションが動作しません。

javascript

1 <form> 2 <div> 3 <!-- 画像エリア --> 4 <div id="image_area"> 5 <canvas ref="preview" id="preview"></canvas> 6 <input type="file" name="image" accept="image/*" ref="selectimage" @change="previewImage"/> 7 </div> 8 <p> 9 <input v-model="text" type="text" id="canvas_text" > 10 <p>{{ errors.text }}</p> 11 <button type="button" @click="drawText('preview', 'canvas_text')"> 12 文字を描く 13 </button> 14 </p> 15 16 <!-- タイトル入力 --> 17 <div> 18 <input v-model="title" type="text" name="title" placeholder="タイトル"> 19 <p>{{ errors.title }}</p> 20 </div> 21 <button @click="saveCanvas('preview')">アップロード</button> 22 </div> 23 </form> 24 25<script> 26import { useField, useForm } from "vee-validate"; 27import * as yup from 'yup'; 28 29export default { 30 setup() { 31 const schema = object({ 32 text: string().required(), 33 title: string().required() 34 }); 35 36 const{ errors } = useForm({ ValidationSchema: schema }); 37 38 const { value: text } = useField('text'); 39 const { value: title } = useField('title'); 40 41 return { 42 text, 43 title, 44 errors, 45 } 46 }, 47}; 48</script>

下記URLのサイトを参考にコードを書いています。
https://reffect.co.jp/vue/veevaliate4#useForm

参考サイトの「3.6 useFormの利用」からバリテーションが働かないです。
サイト通りに書いているはずなのですが、、、、

「useForm関数から戻されるオブジェクトに含まれるerrorsからもメッセージを取得することができます。」との事なのですが、errorsからもメッセージを取得できません。

どうすればuseForm関数からerrorメッセージを取得できるでしょうか?

開発環境
"vue": "^3.2.20",
"vee-validate": "^4.5.8",
"yup": "^0.32.11"

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

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

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

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

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

guest

回答1

0

自己解決

記述ミスでした。

useForm()関数内で定義していたvalidationSchema のvを大文字で書いていたのが原因で動作していませんでした。

投稿2022/01/28 08:01

tkm0604

総合スコア554

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問