Home > Web Front-end > Vue.js > body text

How to implement form validation in Vue

WBOY
Release: 2023-06-11 09:57:07
Original
6095 people have browsed it

With the continuous development of web applications, form validation has gradually become an indispensable part of the web development process. In Vue, form validation is also a very important feature. In this article, we will introduce the basic methods and techniques on how to use Vue to implement form validation.

1. Basic verification

The basis of form verification is to verify the data entered by the user form to ensure the correctness of the data. In Vue, you can use Vue's own v-model directive to bind the value of a form element, and use the v-bind directive to bind validation rules. At the same time, variables can be set in the component's data to record the verification results of the form elements.

For example, we can define a form component to implement the verification function of username and password:

<template>
  <div>
    <label>用户名:</label>
    <input v-model="username" type="text" v-bind:class="{ error: !validUsername }">
    <span v-if="!validUsername">请输入合法的用户名!</span>
    <br>
    <label>密码:</label>
    <input v-model="password" type="password" v-bind:class="{ error: !validPassword }">
    <span v-if="!validPassword">请输入合法的密码!</span>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: '',
      validUsername: true,
      validPassword: true
    }
  },
  watch: {
    // 监听用户名输入框的值变化
    username() {
      this.validUsername = this.username.length > 3
    },
    // 监听密码输入框的值变化
    password() {
      this.validPassword = this.password.length > 5
    }
  }
}
</script>
Copy after login

In the above code, we use the v-model directive to bind username and password input The value of the box. Then, use the v-bind directive to bind validation rules: If the value of the input box is illegal, add a CSS class name named "error" to the input element. Finally, use watch to monitor the value changes of the input box and set the corresponding verification status according to different verification rules.

2. Custom validation rules

For some special form elements, we need to customize validation rules. In Vue, you can use the computed method to define calculated properties, calculate the values ​​of form elements, and obtain verification results. For example, you can customize a mobile phone number verification rule:

<template>
  <div>
    <label>手机号码:</label>
    <input v-model="phone" type="text" v-bind:class="{ error: !validPhone}">
    <span v-if="!validPhone">请输入合法的手机号码!</span>
  </div>
</template>

<script>
export default {
  data() {
    return {
      phone: '',
      validPhone: false
    }
  },
  computed: {
    validPhone() {
      const reg = /^1[3456789]d{9}$/ //定义手机号码正则表达式
      return reg.test(this.phone) //返回验证结果
    }
  }
}
</script>
Copy after login

In the above code, we use the computed method to define a calculated attribute validPhone to verify the entered mobile phone number. First, a regular expression for a mobile phone number is defined, and then the test method is used to verify whether the value of the input box conforms to the regular expression. If it matches, return true, otherwise return false.

3. Asynchronous verification

In some special scenarios, such as when data verification needs to be obtained from the server or verified through Ajax and other methods, we need to use asynchronous verification. In Vue, you can use the axios library or fetch API provided by Vue to obtain data, and use promises to process the results of asynchronous processing.

For example, we can use the axios library to implement asynchronous verification:

<template>
  <div>
    <label>邮箱:</label>
    <input v-model="email" type="text" v-bind:class="{ error: !validEmail }">
    <span v-if="!validEmail">请输入合法的邮箱地址!</span>
  </div>
</template>

<script>
import axios from 'axios'

export default {
  data() {
    return {
      email: '',
      validEmail: false
    }
  },
  watch: {
    email() {
      if (this.email === '') {
        return
      }
      axios.get('/api/checkEmail', { //请求后台接口
        params: {
          email: this.email
        }
      }).then((response) => {
        if (response.data.success) {
          this.validEmail = true
        } else {
          this.validEmail = false
        }
      }).catch(() => {
        this.validEmail = false
      })
    }
  }
}
</script>
Copy after login

In the above code, we use the axios.get method to send a request, passing the email address in the input box as a parameter Give the background interface. If it returns successfully, set the value of validEmail to true, otherwise set it to false.

In short, implementing form verification in Vue is relatively simple. You only need to follow the above three parts: basic verification, custom verification rules, and asynchronous verification. At the same time, Vue's flexibility allows us to implement more complex form validation functions. I hope that the introduction in this article can bring some help to your Vue development work.

The above is the detailed content of How to implement form validation in Vue. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!