웹 프론트엔드 JS 튜토리얼 VueValidate를 사용하여 Vue 프로젝트에서 양식 확인 기능을 수행하는 방법

VueValidate를 사용하여 Vue 프로젝트에서 양식 확인 기능을 수행하는 방법

Jun 01, 2018 am 10:28 AM
지휘하다 프로젝트

이번에는 Vue 프로젝트에서 VeeValidate를 사용하여 폼 검증을 수행하는 방법을 보여드리겠습니다. Vue 프로젝트에서 VeeValidate를 사용하여 폼 검증을 수행하는 주의 사항은 무엇입니까? 다음은 실제 사례입니다.

VeeValidate란 무엇입니까:

VeeValidate는 Vue.js용 검증 라이브러리입니다. 여기에는 많은 검증 규칙이 있으며 사용자 정의 규칙을 지원합니다. 템플릿을 기반으로 하므로 HTML5 유효성 검사 API와 유사하고 익숙합니다. HTML5 입력과 사용자 정의 Vue 구성 요소를 확인할 수 있습니다. 또한 현지화를 염두에 두고 구축되었으며 실제로 훌륭한 커뮤니티 구성원이 약 44개 언어를 지원하고 유지관리하고 있습니다.

이 문서에는 다음 애플리케이션을 포함한 VeeValidate가 포함되어 있습니다. 2. 현지화 지원

3. HTML5 입력 확인 및 Vue 구성 요소 사용자 정의

5. 통합 제출 버튼 처리

먼저 페이지 효과를 살펴보겠습니다.

gif 효과를 보려면 내 github(https://

github. com/HongqingCao/My-Code/tree/master/VeeValidate)에서 예제 소스 코드 다운로드를 보고 제공합니다. 주제를 살펴보겠습니다.

기본 설치 및 사용

VeeValidate는 두 가지 방법을 지원합니다. 하나는 NPM/yarn입니다. (npm install vee -validate --save) 중 하나는 CDN입니다.

이 기사는 CDN 형식으로 인용됩니다:

<script type="text/javascript" src="js/jquery-3.2.1.min.js" ></script>
  <script type="text/javascript" src="js/vue.min.js" ></script>
  <script type="text/javascript" src="js/vee-validate.min.js" ></script>
  <script type="text/javascript" src="js/zh_CN.js" ></script>
로그인 후 복사
참고: js 파일 4개가 소개되어 있으며 처음 두 개는 간략하게 설명하고 후자 두 개는 vee-validata 및 zh_CN 중국어 언어 팩 파일입니다.

html 페이지 부분:

<p class="enroll" id="recommend-box">
        <p class="title">请填写您要荐购的书籍信息:</p>
        <p class="content">
          <p class="info infoa">
            <p class="group-input">
              <span class="a">书 名:</span>
              <input v-model="title" v-validate="'required'" data-vv-as="书名" type="text" name="title" placeholder="请输入推荐书名" />
            </p>
            <p class="errors" v-show="errors.has('title')" v-cloak>{{ errors.first('title') }}</p>
          </p>
          <p class="info infoa">
            <p class="group-input">
              <span class="a">作 者:</span>
              <input v-model="author" v-validate="'required'" data-vv-as="作者" type="text" name="author" placeholder="请输入作者" />
            </p>
            <p class="errors" v-show="errors.has('author')" v-cloak>{{ errors.first('author') }}</p>
          </p>
          <p class="info infoa">
            <p class="group-input">
              <span class="a">出版社:</span>
              <input v-model="publisher" v-validate="'required'" data-vv-as="出版社" type="text" name="publisher" placeholder="请输入出版社" />
            </p>
            <p class="errors" v-show="errors.has('publisher')" v-cloak>{{ errors.first('publisher') }}</p>
          </p>
          <p class="info infob">         
            <p class="group-input">
              <span class="a">出版年:</span>
              <input v-model="pubYear" v-validate="'required|pubYear|digits:4'" data-vv-as="出版年" type="text" name="pubYear" placeholder="请输入出版年" />
            </p>
            <p class="errors" v-show="errors.has('pubYear')" v-cloak>{{ errors.first('pubYear') }}</p>
          </p>
          <p class="info infob">
            <p class="group-input">
              <span class="a">语言类型:</span>
              <input v-model="type" v-validate="'required'" data-vv-as="语言类型" type="text" name="type" placeholder="语言类型" />
            </p>
            <p class="errors" v-show="errors.has('type')" v-cloak>{{ errors.first('type') }}</p>
          </p>
          <p class="info infob">
            <p class="group-input">
              <span class="a">ISBN号:</span>
              <input v-model="isbn" v-validate="'required|isbn'" data-vv-as="ISBN号" type="text" name="isbn" placeholder="ISBN号" />
            </p>
            <p class="errors" v-show="errors.has('isbn')" v-cloak>{{ errors.first('isbn') }}</p>
          </p>
          <p class="info infob more">
            <p class="group-input">
              <span class="a">推荐理由:</span>
              <textarea v-model="remark" v-validate="'max:200'" data-vv-as="推荐理由" type="text" name="remark" placeholder="请输入推荐理由"></textarea>
            </p>
            <p class="errors" v-show="errors.has('remark')" v-cloak>{{ errors.first('remark') }}</p>
          </p>
           <p class="info info-btn">
             <p class="btton" @click="validateBeforeSubmit()">提交</p>
           </p>
         </p>
      </p>
로그인 후 복사

참고: 여기에는 입력/텍스트 영역 태그의

1.

v-validate, data-vv-as, name

속성이 포함되어 있습니다. (v-model은 여기서 이러한 매개변수를 인터페이스 요청에 쉽게 전달하기 위한 양방향 바인딩이므로 너무 많이 소개하지 않겠습니다.) 2.

v-show="errors.has('remark')"

및 * *{{errors.first('remark') }}**

v-validate: v-validate 지시문을 유효성을 검사하려는 입력에 추가하고 입력에 오류를 생성하는 데 사용된 이름이 있는지 확인하세요. 메시지 속성 . 그런 다음 파이프 '|'로 구분된 유효성 검사 규칙 목록이 포함된 규칙 문자열

이 지시문에 전달됩니다. 예를 들어, 위의

출판 연도 사본 확인의 경우 required

를 사용합니다. 이 옵션은 필수인

pubYear를 사용하여 필드가 연도 형식(물론 여기에서는 사용자 정의됨), 숫자: 4, 숫자여야 함을 나타냅니다. 길이는 4입니다. 이 두 가지 규칙을 결합하기 위해 문자열 값 필수|pubYear|digits:4에 대해 v-validate 표현식의 값을 지정합니다. data-vv-as: 이 입력에 대해 오류 메시지가 생성되면 실제 필드 이름 대신 data-vv-as 값이 사용됩니다. 기본 오류 프롬프트는 모두 영어입니다. set 이후에는 오류 프롬프트 필드 이름에 data-vv-as 값이 표시됩니다.

v-show="errors.has('remark')

기본 오류 프롬프트 라벨은 로드되지 않습니다.

errors.first ( 'remark')

현재 발언에 대한 첫 번째

오류 메시지 가져오기

js 부분:

<script type="text/javascript">
    var IndexPage = "http://localhost:8080/xxxx.html"
    var AuthCode = "12131";
    $(function () {
      recommend(AuthCode);
    })
    VeeValidate.Validator.localize('zh_CN');
    Vue.use(VeeValidate);
    VeeValidate.Validator.localize({
      zh_CN: {
        messages: {
          required: function (name) { return name + '不能为空' },
        }
      }
    })
    VeeValidate.Validator.extend('isbn',{
      getMessage: function () { return " 请输入正确格式的isbn号" },
      validate: function (value) { return /^[\d-]*$/.test(value);}
    })
    VeeValidate.Validator.extend('pubYear', {
      getMessage: function () { return " 请输入正确的年份" },
      validate: function (value) { return /^(19|20)\d{2}$/.test(value); }
    })
    function recommend(AuthCode) {
      var classList = new Vue({
        el: '#recommend-box',
        data: function () {
          return {
            title: "",
            author: "",
            publisher: "",
            pubYear: "",
            type: "",
            remark: "",
            isbn: ""
          }
        },
        methods: {
          validateBeforeSubmit() {
            this.$validator.validateAll().then((result) => {
              if (result) {
                $.ajax({
                  url: '/xxxx',
                  data: {
                    Request: "xxxxx",
                    title: this.title,
                    author: this.author,
                    publisher: this.publisher,
                    pubYear: this.pubYear,
                    type: this.type,
                    remark: this.remark,
                    isbn: this.isbn,
                    certId: AuthCode
                  },
                  type: 'POST',
                  dataType: "json",
                  success: function (data) {
                    var msg = data.msg;
                    alert(msg);
                    window.location.href = IndexPage;
                  }
                });
                return;
              }
              alert("请输入完整推荐信息!")
            });
          }
        }
      })
    }
  </script>
로그인 후 복사
좋아, 이 코드를 함께 읽어보자

VeeValidate.Validator.localize('zh_CN');
    Vue.use(VeeValidate);
로그인 후 복사
참고: 위 코드의 의미는 1 입니다. zh_CN 정오의 언어 환경, 기본 프롬프트를 변경하지 않으면 영어입니다. 2. VeeValidate 플러그인을 설치합니다. 이는 초기화로도 이해될 수 있습니다.
VeeValidate.Validator.localize({
      zh_CN: {
        messages: {
          required: function (name) { return name + '不能为空' },
        }
      }
    })
로그인 후 복사
참고: 위 코드는 기본 프롬프트와 이름 속성을 변경합니다. 비어 있을 수 없습니다. 항목이 비어 있지 않은지 판단합니다.

VeeValidate.Validator.extend('isbn',{
      getMessage: function () { return " 请输入正确格式的isbn号" },
      validate: function (value) { return /^[\d-]*$/.test(value);}
    })
    VeeValidate.Validator.extend('pubYear', {
      getMessage: function () { return " 请输入正确的年份" },
      validate: function (value) { return /^(19|20)\d{2}$/.test(value); }
    })
로그인 후 복사
참고: 위 코드는 사용자 정의 규칙 getMessage: 프롬프트를 수정합니다. 일반적으로 일치하는 규칙입니다.
validateBeforeSubmit() {
   this.$validator.validateAll().then((result) => {
        if (result) {
           //这里写具体的接口请求
            alert("推荐成功!")
           return;
          }
           alert("请输入完整推荐信息!")
        }
     }
로그인 후 복사

注释:上代码创建一个提交按钮事件,监听是否正常填写选项,实现校验

一个完整的校验应用案例到这里已经讲解的差不多了,小伙伴们可以根据自己的实际情况应用在自己的项目中,如果需要深入了解,可以移步到官网https://baianat.github.io/vee-validate/guide/。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

如何操作Vue内使用vee-validate

Node.js笔记process模块使用详解

위 내용은 VueValidate를 사용하여 Vue 프로젝트에서 양식 확인 기능을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

AI는 페르마의 마지막 정리를 정복할 수 있을까? 100페이지의 증거를 코드로 만들기 위해 5년의 경력을 포기한 수학자 AI는 페르마의 마지막 정리를 정복할 수 있을까? 100페이지의 증거를 코드로 만들기 위해 5년의 경력을 포기한 수학자 Apr 09, 2024 pm 03:20 PM

AI는 페르마의 마지막 정리를 정복할 수 있을까? 100페이지의 증거를 코드로 만들기 위해 5년의 경력을 포기한 수학자

PyCharm 자세히 살펴보기: 프로젝트를 삭제하는 빠른 방법 PyCharm 자세히 살펴보기: 프로젝트를 삭제하는 빠른 방법 Feb 26, 2024 pm 04:21 PM

PyCharm 자세히 살펴보기: 프로젝트를 삭제하는 빠른 방법

PyCharm 프로젝트를 패키징하는 쉬운 방법 공유 PyCharm 프로젝트를 패키징하는 쉬운 방법 공유 Dec 30, 2023 am 09:34 AM

PyCharm 프로젝트를 패키징하는 쉬운 방법 공유

PyCharm 실용 팁: 프로젝트를 실행 가능한 EXE 파일로 변환 PyCharm 실용 팁: 프로젝트를 실행 가능한 EXE 파일로 변환 Feb 23, 2024 am 09:33 AM

PyCharm 실용 팁: 프로젝트를 실행 가능한 EXE 파일로 변환

iPhone의 iOS 17 미리 알림 앱에서 쇼핑 목록을 만드는 방법 iPhone의 iOS 17 미리 알림 앱에서 쇼핑 목록을 만드는 방법 Sep 21, 2023 pm 06:41 PM

iPhone의 iOS 17 미리 알림 앱에서 쇼핑 목록을 만드는 방법

React 프로젝트 시작 시 오류가 발생하면 어떻게 해야 할까요? React 프로젝트 시작 시 오류가 발생하면 어떻게 해야 할까요? Dec 27, 2022 am 10:36 AM

React 프로젝트 시작 시 오류가 발생하면 어떻게 해야 할까요?

오픈 소스 ChatGPT 웹 UI 프로젝트를 기반으로 나만의 ChatGPT 사이트를 빠르게 구축하세요. 오픈 소스 ChatGPT 웹 UI 프로젝트를 기반으로 나만의 ChatGPT 사이트를 빠르게 구축하세요. Apr 15, 2023 pm 07:43 PM

오픈 소스 ChatGPT 웹 UI 프로젝트를 기반으로 나만의 ChatGPT 사이트를 빠르게 구축하세요.

PyCharm 튜토리얼: PyCharm에서 항목을 제거하는 방법은 무엇입니까? PyCharm 튜토리얼: PyCharm에서 항목을 제거하는 방법은 무엇입니까? Feb 24, 2024 pm 05:54 PM

PyCharm 튜토리얼: PyCharm에서 항목을 제거하는 방법은 무엇입니까?

See all articles