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

Vue.js

Posted by arkgame