「Vue.js」watchでテキストフォームの入力文字数制限をつけるサンプル
環境
windows10 home 64bit
Vue.js 3.0.0
Google Chrome 98.0.4758.102
書式
<div v-if="error.max">バリテーションメッセージ</div> watch: { val: function (newVal, oldVal) { this.error.max = 処理コード } }
「watch」を使用してテキストフォームに入力文字に対してバリデーションをかけます。
使用例
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>テキストフォームにバリデーションをかけるサンプル</title> <script src="https://unpkg.com/vue@next"></script> </head> <body> <div id="app"> <form > <input id="username" type="text" v-model="val"> <div v-if="error.max">入力文字数は5桁以内してください</div> </form> </div> <script> const cft = { data() { return { val: '', error: { max: false } } }, watch: { val: function (newVal, oldVal) { this.error.max = (newVal.length > 5) ? true : false; } }, } Vue.createApp(cft).mount('#app') </script> </body> </html>
結果
テキストフォームに5桁以上文字「studys」を入力すると、「入力文字数は5桁以内してください」が表示されます。