最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實現(xiàn)表單單獨移除一個字段驗證

 更新時間:2022年03月21日 09:04:04   作者:friend_ship  
這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)表單單獨移除一個字段驗證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了vue實現(xiàn)表單單獨移除一個字段驗證的具體代碼,供大家參考,具體內(nèi)容如下

下面的代碼以登錄功能為例。

功能描述: 用戶輸入密碼時,失去焦點進(jìn)行密碼校驗,當(dāng)輸入有誤時,顯示錯誤提示信息;只要密碼值發(fā)生了變化,錯誤提示信息就移除。

通過watch監(jiān)控password字段,實現(xiàn)實時移除。

vue2 模板語法代碼如下:

<template>
? ? <div>
? ? ? ? ?<el-form :model="form" :rules="rules" ref="form" label-width="140px">
? ? ? ? ? <el-form-item label="用戶名" prop="username">
? ? ? ? ? ?<el-input v-model="form.username" placeholder="請輸入用戶名"></el-input>
? ? ? ? ? </el-form-item>
? ? ? ? ? <el-form-item label="密碼" prop="password">
? ? ? ? ? ? <el-input type="password" v-model="form.password" placeholder="請輸入密碼"
? ? ? ? ? ? ></el-input>
? ? ? ? ? </el-form-item>
? ? ? ? ? <el-form-item>
? ? ? ? ? ? <el-button type="primary" @click="submit('form')">提交</el-button>
? ? ? ? ? ? <el-button @click="reset('form')">取消</el-button>
? ? ? ? ? </el-form-item>
? ? ? ? </el-form>
? ? <div>
</template>
<script>
export default {
? ? data() {
? ? ? ? let validatePwd ?= (rule, value, callback) => {
? ? ? ? ? ? // 密碼校驗
? ? ? ? }
? ? ? ? return {
? ? ? ? ? ? form: {
? ? ? ? ? ? ? ? username: '',
? ? ? ? ? ? ? ? password: ''
? ? ? ? ? ? },
? ? ? ? ? ? ?rules: {
? ? ? ? ? ? ? ? username: [{ required: true, message: '請輸入用戶名', trigger: 'blur'}],
? ? ? ? ? ? ? ? password: [{ required: true, validator: validatePwd, trigger: 'blur'}]
? ? ? ? ? ? }
? ? ? ? }
? ? },
? ? watch: {
? ? ? ? 'form.password'(newVal, oldVal) {
? ? ? ? ? ? if(newVal, oldVal) {
? ? ? ? ? ? ? ? ? this.$refs['form'].clearValidate('password');
? ? ? ? ? ? }
? ? ? ? }
? ? }
?
}
</script>

vue2+composition-api 使用tsx語法開發(fā),代碼如下:

service.ts

export const initFormState = {
? ? username: '',
? ? password: ''
}
?
const validatePwd = (rule, value, callback) => {
? ? // 密碼校驗
}
?
export const formStateRules = {
? ? username: [
? ? ? ? { required: true, message: '請輸入用戶名', trigger: 'blur'}
? ? ],
? ? password: [
? ? ? ? { required: true, validator: validatePwd, trigger: 'blur'}
? ? ]
}

index.tsx文件

import { onMounted, reactive, ref, watch } from "@vue/composition-api";
import { initFormState} from './service.ts';
?
export default defineComponent({
? ? setup (prop,{root}) {
? ? ?
? ? ? ? const formState= reactive({
? ? ? ? ? ? ...initFormState, // 從service引入進(jìn)來
? ? ? ? })
?
? ? ? ? const formRef = ref(null);
? ? ? ??
? ? ? ? const submit = () ?=> {
? ? ? ? ? ? // 表單校驗
? ? ? ? ? ? const formValidate = await new Promise(resolve => {
? ? ? ? ? ? ? ? (formRef as any).value.validate((valid: boolean) => resolve(valid));
? ? ? ? ? ? });
?
? ? ? ? ? ? if(!formValidate) return;
? ? ? ? ? ? // 表單校驗通過后進(jìn)行的邏輯
? ? ? ? }
?
? ? ? ? const reset = () => {
? ? ? ? ? ? ?Object.keys(formState).map((key: string) => formState[key] = (initFormState as any)[key]);
? ? ? ? }
? ??
? ? ? ? // 監(jiān)控password, 按需移除錯誤提示信息
? ? ? ?watch(() => formState.password, ()=> {
? ? ? ? ? ?const result = formState.password;
? ? ? ? ? ? if(result) {
? ? ? ? ? ? ? ? (formRef as any).value.clearValidate('password')
? ? ? ? ? ? }
? ? ? ? })
? ? ? ? return {
? ? ? ? ? ? formState,
? ? ? ? ? ? formRef,
? ? ? ? ? ? formStateRules,
? ? ? ? ? ? submit,
? ? ? ? ? ? reset
? ? ? ? }
? ??
? ? },
? ? render() {
? ? ? ? return (
? ? ? ? ? ? <div>
? ? ? ? ? ? ? ? <el-form?
? ? ? ? ? ? ? ? ? ? ref="formRef"?
? ? ? ? ? ? ? ? ? ? form={this.formState}?
? ? ? ? ? ? ? ? ? ? props={{model: this.formState}}
? ? ? ? ? ? ? ? ? ? rules={formStateRules} ?label-width="140px">
? ? ? ? ? ? ? ? ? <el-form-item label="用戶名" prop="username">
? ? ? ? ? ? ? ? ? ? ? ?<el-input v-model={this.formState.username} placeholder="請輸入用戶名"></el-input>
? ? ? ? ? ? ? ? ? </el-form-item>
? ? ? ? ? ? ? ? ? <el-form-item label="密碼" prop="password">
? ? ? ? ? ? ? ? ? ? <el-input type="password" v-model={this.formState.password} placeholder="請輸入密碼"></el-input>
? ? ? ? ? ? ? ? ? </el-form-item>
? ? ? ? ? ? ? ? ? <el-form-item>
? ? ? ? ? ? ? ? ? ? <el-button type="primary" onClick={this.submit}>提交</el-button>
? ? ? ? ? ? ? ? ? ? <el-button onClick={this.reset}>取消</el-button>
? ? ? ? ? ? ? ? ? </el-form-item>
? ? ? ? ? ? ? ? </el-form>
? ? ? ? ? ? </div>
? ? ? ? )
? ? }
?
})

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue?data中的return使用方法示例

    vue?data中的return使用方法示例

    當(dāng)一個組件被定義,data必須聲明為返回一個初始數(shù)據(jù)對象的函數(shù),因為組件可能被用來創(chuàng)建多個實例,下面這篇文章主要給大家介紹了關(guān)于vue?data中return使用,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Vue2中使用Monaco?Editor的教程詳解

    Vue2中使用Monaco?Editor的教程詳解

    Monaco-editor,一個vs?code?編輯器,這篇文章主要為大家詳細(xì)介紹了如何在Vue2中使用Monaco?Editor,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • 使用vue-element-admin框架調(diào)用后端接口及跨域的問題

    使用vue-element-admin框架調(diào)用后端接口及跨域的問題

    這篇文章主要介紹了使用vue-element-admin框架調(diào)用后端接口及跨域的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue如何使用el-table遍歷循環(huán)表頭和表體數(shù)據(jù)

    vue如何使用el-table遍歷循環(huán)表頭和表體數(shù)據(jù)

    這篇文章主要介紹了vue如何使用el-table遍歷循環(huán)表頭和表體數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue常用指令v-if與v-show的區(qū)別淺析

    Vue常用指令v-if與v-show的區(qū)別淺析

    v-if和v-show的區(qū)別是前端面試中常問的基礎(chǔ)知識點,v-if、v-show顧名思義就是用來判斷視圖層展示效果的,下面這篇文章主要給大家介紹了關(guān)于Vue常用指令v-if與v-show區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • vue路由監(jiān)聽的一些常用方式

    vue路由監(jiān)聽的一些常用方式

    有時在頁面刷新或者返回等操作時,想監(jiān)聽路由變化進(jìn)行數(shù)據(jù)更新等操作,下面這篇文章主要給大家介紹了關(guān)于vue路由監(jiān)聽的一些常用方式,需要的朋友可以參考下
    2023-10-10
  • Vue項目的甘特圖組件之dhtmlx-gantt使用教程和實現(xiàn)效果展示(推薦)

    Vue項目的甘特圖組件之dhtmlx-gantt使用教程和實現(xiàn)效果展示(推薦)

    文章介紹了如何使用dhtmlx-gantt組件來實現(xiàn)公司的甘特圖需求,并提供了一個簡單的Vue組件示例,文章還分享了一些配置項,如格式化表頭日期、設(shè)置甘特圖尺寸、啟用只讀模式、設(shè)置表格列等,感興趣的朋友一起看看吧
    2025-02-02
  • vue-router路由簡單案例介紹

    vue-router路由簡單案例介紹

    本篇文章主要介紹了vue-router路由的使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Pinia.js狀態(tài)管理器上手使用指南

    Pinia.js狀態(tài)管理器上手使用指南

    這篇文章主要為大家介紹了Pinia.js狀態(tài)管理器上手使用指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Vue.js如何實現(xiàn)路由懶加載淺析

    Vue.js如何實現(xiàn)路由懶加載淺析

    Vue是可以自定義指令的,最近學(xué)習(xí)過程中遇見了一個需要懶加載的功能,發(fā)現(xiàn)網(wǎng)上這方面的資料較少,所以下面這篇文章主要給大家介紹了關(guān)于Vue.js如何實現(xiàn)路由懶加載的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08

最新評論

乌海市| 哈密市| 分宜县| 榆树市| 柳州市| 镇康县| 景宁| 淅川县| 遂宁市| 鹿邑县| 海阳市| 陆良县| 深泽县| 武清区| 和静县| 富平县| 渑池县| 神木县| 万山特区| 芒康县| 徐州市| 青岛市| 都兰县| 东乌珠穆沁旗| 金寨县| 神农架林区| 富平县| 安溪县| 汕尾市| 萝北县| 类乌齐县| 伊金霍洛旗| 江源县| 海伦市| 广饶县| 五指山市| 正阳县| 普兰店市| 江源县| 吐鲁番市| 喀喇|