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

el-form錯誤提示信息手動添加和取消的示例代碼

 更新時間:2022年08月18日 09:51:18   作者:悟空和大王  
這篇文章主要介紹了el-form錯誤提示信息手動添加和取消,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

需求

對表單填寫字段進(jìn)行標(biāo)記有誤和取消標(biāo)記有誤

方案

最新想到的方案 推薦

定義一個存放錯誤信息的對象,然后再自定義一個驗證規(guī)則,在這個驗證規(guī)則中,通過當(dāng)前驗證字段的prop值,到存放錯誤信息的對象中獲取對應(yīng)的錯誤提示文案,如果獲取到了,則說明,該字段存在標(biāo)記有誤,則讓驗證不通過,反之,則讓驗證通過

運(yùn)行效果:

實現(xiàn)代碼

<template>
  <div>
    <h1>標(biāo)記有誤/取消標(biāo)記有誤:</h1>
    <el-button @click="() => onMarkError(['markField', 'mustAndMarkField'])">
      將第二個和最后一個標(biāo)記有誤
    </el-button>
    <el-button @click="() => onMarkError(['markField'])"
      >將第二個標(biāo)記有誤</el-button
    >
    <el-button @click="() => onMarkError(['mustAndMarkField'])"
      >將最后一個標(biāo)記有誤</el-button
    >
    <el-button
      @click="() => onCancelMarkError(['markField', 'mustAndMarkField'])"
    >
      取消第二個和最后一個標(biāo)記有誤
    </el-button>
    <el-button @click="() => onCancelMarkError(['markField'])">
      取消第二個標(biāo)記有誤
    </el-button>
    <el-button @click="() => onCancelMarkError(['mustAndMarkField'])">
      取消最后一個標(biāo)記有誤
    </el-button>
    <el-button type="primary" @click="onSubmit">提交表單</el-button>

    <el-button-group>
      <el-button @click="() => onChangeModel('hasValuePassMarkError')"
        >只要有值則標(biāo)記有誤驗證通過</el-button
      >
      <el-button @click="() => onChangeModel('ignoreMarkError')">
        不執(zhí)行標(biāo)記有誤驗證</el-button
      >
    </el-button-group>
    <el-form :model="formData" ref="formDataRef">
      <el-form-item
        label="必填字段"
        prop="mustField"
        :rules="formDataRule.mustField"
      >
        <el-input v-model="formData.mustField"></el-input>
      </el-form-item>
      <el-form-item
        label="標(biāo)記有誤字段"
        prop="markField"
        :rules="formDataRule.markField"
      >
        <el-input v-model="formData.markField"></el-input>
      </el-form-item>
      <el-form-item
        label="普通字段"
        prop="normalField"
        :rules="formDataRule.normalField"
      >
        <el-input v-model="formData.normalField"></el-input>
      </el-form-item>
      <el-form-item
        label="必填且標(biāo)記有誤字段"
        prop="mustAndMarkField"
        :rules="formDataRule.mustAndMarkField"
      >
        <el-input v-model="formData.mustAndMarkField"></el-input>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  name: "StyleTextPage",
  components: {},
  data() {
    return {
      /**
       * 標(biāo)記有誤驗證方法執(zhí)行模式:
       * hasValuePassMarkError:只要有值,則通過驗證,否則不通過驗證
       * ignoreMarkError: 一律通過
       */
      onChangeModel: "hasValuePassMarkError",
      // 表單數(shù)據(jù)
      formData: {
        mustField: null,
        markField: null,
        normalField: null,
        mustAndMarkField: null,
      },
      // 存放標(biāo)記有誤數(shù)據(jù)的對象
      markErrorData: null,
      // 自定義驗證規(guī)則:驗證是否存在標(biāo)記有誤數(shù)據(jù),如果存在,則將標(biāo)記有誤數(shù)據(jù),顯示為錯誤數(shù)據(jù)
      validateMarkError(rule, value, callback, fieldName) {
        if (this.onChangeModel === "ignoreMarkError") {
          // 一律通過
          return callback();
        }
        if (this.markErrorData && this.markErrorData[fieldName]) {
          // 當(dāng)前驗證字段存在標(biāo)記有誤信息
          if (this.onChangeModel === "hasValuePassMarkError") {
            if (value) {
              // 只要有值則通過
              return callback();
            } else {
              // 沒值,不通過
              return callback(new Error(this.markErrorData[fieldName]));
            }
          }
        }
        return callback();
      },
      // 測試不同的驗證規(guī)則組合情況
      formDataRule: {
        mustField: [{ required: true, message: "必填" }],
        markField: [
          {
            validator: (rule, value, callback) =>
              this.validateMarkError(rule, value, callback, "markField"),
            trigger: "blur",
          },
        ],
        normalField: [],
        mustAndMarkField: [
          {
            validator: (rule, value, callback) =>
              this.validateMarkError(rule, value, callback, "mustAndMarkField"),
            trigger: "blur",
          },
          { required: true, message: "必填" },
        ],
      },
    };
  },
  created() {},
  methods: {
    onSubmit() {
      this.$refs.formDataRef.validate((ret) => {
        if (ret) {
          this.$message({
            message: "驗證通過",
            type: "success",
          });
        } else {
          this.$message({
            message: "表單數(shù)據(jù)驗證失敗",
            type: "error",
          });
        }
      });
    },
    // 手動刪除錯誤提示信息
    onCancelMarkError(cancelMarkErrorPropArr) {
      if (!this.markErrorData) {
        this.markErrorData = {};
      }
      cancelMarkErrorPropArr.forEach((fieldName) => {
        this.$set(this.markErrorData, fieldName, null);
      });
      this.$refs.formDataRef.clearValidate(cancelMarkErrorPropArr);
    },
    // 手動添加錯誤提示信息
    onMarkError(markErrorPropArr) {
      if (!this.markErrorData) {
        this.markErrorData = {};
      }
      markErrorPropArr.forEach((fieldName) => {
        this.$set(
          this.markErrorData,
          fieldName,
          `對字段 ${fieldName} 標(biāo)記有誤`
        );
      });
      this.$refs.formDataRef.validateField(markErrorPropArr);
    },
  },
};
</script>

<style scoped lang="scss">
.js-validate-form ::v-deep(.is-error .o-show-data) {
  color: red;
}
</style>

到此這篇關(guān)于el-form錯誤提示信息手動添加和取消的文章就介紹到這了,更多相關(guān)el-form錯誤提示信息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Elementui如何限制el-input框輸入小數(shù)點

    Elementui如何限制el-input框輸入小數(shù)點

    這篇文章主要介紹了Elementui如何限制el-input框輸入小數(shù)點,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 淺談vuepress 踩坑記

    淺談vuepress 踩坑記

    本篇文章主要介紹了淺談vuepress 踩坑記,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • vue數(shù)組動態(tài)刷新失敗問題及解決

    vue數(shù)組動態(tài)刷新失敗問題及解決

    這篇文章主要介紹了vue數(shù)組動態(tài)刷新失敗問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue3視頻播放器組件Vue3-video-play新手入門教程

    Vue3視頻播放器組件Vue3-video-play新手入門教程

    這篇文章主要給大家介紹了關(guān)于Vue3視頻播放器組件Vue3-video-play新手入門教程的相關(guān)資料,本文實例為大家分享了vue-video-player視頻播放器的使用配置,供大家參考,需要的朋友可以參考下
    2023-12-12
  • Vue自定義組件的四種方式示例詳解

    Vue自定義組件的四種方式示例詳解

    本文給大家分享vue自定義組件的四種方式,通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-02-02
  • 解決新建一個vue項目過程中遇到的問題

    解決新建一個vue項目過程中遇到的問題

    這篇文章主要介紹了解決新建一個vue項目過程中遇到的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • vue中的base64圖片轉(zhuǎn)網(wǎng)絡(luò)URL方式

    vue中的base64圖片轉(zhuǎn)網(wǎng)絡(luò)URL方式

    在Vue中,可以直接將Base64編碼的圖片賦值給img元素的src屬性,此外,也可以通過JavaScript的URL.createObjectURL()方法將Base64轉(zhuǎn)換為Blob URL,進(jìn)而轉(zhuǎn)換為File對象,并可進(jìn)一步轉(zhuǎn)換為PNG或其他格式的圖片,這種轉(zhuǎn)換技術(shù)在前端開發(fā)中非常實用
    2024-10-10
  • 理解Vue2.x和Vue3.x自定義指令用法及鉤子函數(shù)原理

    理解Vue2.x和Vue3.x自定義指令用法及鉤子函數(shù)原理

    這篇文章主要介紹了理解Vue2.x和Vue3.x的自定義指令的用法及鉤子函數(shù)原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-09-09
  • vue單頁應(yīng)用在頁面刷新時保留狀態(tài)數(shù)據(jù)的方法

    vue單頁應(yīng)用在頁面刷新時保留狀態(tài)數(shù)據(jù)的方法

    今天小編就為大家分享一篇vue單頁應(yīng)用在頁面刷新時保留狀態(tài)數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Vue.js中的高級面試題及答案

    Vue.js中的高級面試題及答案

    Vue-loader 是 Webpack 的加載模塊,它使我們可以用 Vue 文件格式編寫單文件組件。這篇文章主要介紹了Vue.js的高級面試題以及答案,需要的朋友可以參考下
    2020-01-01

最新評論

高邑县| 汉源县| 罗甸县| 科技| 灵山县| 霍邱县| 靖江市| 河西区| 富阳市| 阳城县| 平乐县| 古交市| 浦县| 宁河县| 陕西省| 阳泉市| 十堰市| 安岳县| 湟源县| 汉沽区| 丰台区| 随州市| 新建县| 玛多县| 宜城市| 上栗县| 凤城市| 迁安市| 壤塘县| 公安县| 太仆寺旗| 名山县| 丹阳市| 乌兰浩特市| 曲阜市| 凉山| 石河子市| 武强县| 沾化县| 吉隆县| 安图县|