「Vue.js」watchでテキストフォームの入力必須チェックサンプル

2022年2月24日

環境
windows10 home 64bit
Vue.js 3.0.0
Google Chrome 98.0.4758.102

書式

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<div v-if="error.require">エラーメッセージ</div>
watch: {
val: function (newVal, oldVal) {
this.error.require = 処理コード
}
}
<div v-if="error.require">エラーメッセージ</div> watch: { val: function (newVal, oldVal) { this.error.require = 処理コード } }
<div v-if="error.require">エラーメッセージ</div>
watch: {
        val: function (newVal, oldVal) {
          this.error.require = 処理コード
        }
      }

「watch」を使用してテキストフォームに入力項目必須にいてバリデーションをかけます。
使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<!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.require">名前を入力してください</div>
</form>
</div>
<script>
const cft = {
data() {
return {
val: '',
error: {
require: false
}
}
},
watch: {
val: function (newVal, oldVal) {
this.error.require = (newVal.length < 1) ? true : false;
}
},
}
Vue.createApp(cft).mount('#app')
</script>
</body>
</html>
<!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.require">名前を入力してください</div> </form> </div> <script> const cft = { data() { return { val: '', error: { require: false } } }, watch: { val: function (newVal, oldVal) { this.error.require = (newVal.length < 1) ? true : false; } }, } Vue.createApp(cft).mount('#app') </script> </body> </html>
<!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.require">名前を入力してください</div>
      </form>
    </div>
  <script>
    const cft = {
      data() {
        return {
          val: '',
          error: {
            require: false
          }
        }
      },
      watch: {
        val: function (newVal, oldVal) {
          this.error.require = (newVal.length < 1) ? true : false;
        }
      },
    }
    Vue.createApp(cft).mount('#app')
  </script>
</body>

</html>

結果
テキストフォームに入力した文字をクリアすると、「名前を入力してください」が表示されます。

Vue.js

Posted by arkgame