「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桁以内してください」が表示されます。