亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

el-form錯(cuò)誤提示信息手動(dòng)添加和取消的示例代碼

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

需求

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

方案

最新想到的方案 推薦

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

運(yùn)行效果:

實(shí)現(xiàn)代碼

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

    <el-button-group>
      <el-button @click="() => onChangeModel('hasValuePassMarkError')"
        >只要有值則標(biāo)記有誤驗(yàn)證通過(guò)</el-button
      >
      <el-button @click="() => onChangeModel('ignoreMarkError')">
        不執(zhí)行標(biāo)記有誤驗(yàn)證</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)記有誤驗(yàn)證方法執(zhí)行模式:
       * hasValuePassMarkError:只要有值,則通過(guò)驗(yàn)證,否則不通過(guò)驗(yàn)證
       * ignoreMarkError: 一律通過(guò)
       */
      onChangeModel: "hasValuePassMarkError",
      // 表單數(shù)據(jù)
      formData: {
        mustField: null,
        markField: null,
        normalField: null,
        mustAndMarkField: null,
      },
      // 存放標(biāo)記有誤數(shù)據(jù)的對(duì)象
      markErrorData: null,
      // 自定義驗(yàn)證規(guī)則:驗(yàn)證是否存在標(biāo)記有誤數(shù)據(jù),如果存在,則將標(biāo)記有誤數(shù)據(jù),顯示為錯(cuò)誤數(shù)據(jù)
      validateMarkError(rule, value, callback, fieldName) {
        if (this.onChangeModel === "ignoreMarkError") {
          // 一律通過(guò)
          return callback();
        }
        if (this.markErrorData && this.markErrorData[fieldName]) {
          // 當(dāng)前驗(yàn)證字段存在標(biāo)記有誤信息
          if (this.onChangeModel === "hasValuePassMarkError") {
            if (value) {
              // 只要有值則通過(guò)
              return callback();
            } else {
              // 沒(méi)值,不通過(guò)
              return callback(new Error(this.markErrorData[fieldName]));
            }
          }
        }
        return callback();
      },
      // 測(cè)試不同的驗(yàn)證規(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: "驗(yàn)證通過(guò)",
            type: "success",
          });
        } else {
          this.$message({
            message: "表單數(shù)據(jù)驗(yàn)證失敗",
            type: "error",
          });
        }
      });
    },
    // 手動(dòng)刪除錯(cuò)誤提示信息
    onCancelMarkError(cancelMarkErrorPropArr) {
      if (!this.markErrorData) {
        this.markErrorData = {};
      }
      cancelMarkErrorPropArr.forEach((fieldName) => {
        this.$set(this.markErrorData, fieldName, null);
      });
      this.$refs.formDataRef.clearValidate(cancelMarkErrorPropArr);
    },
    // 手動(dòng)添加錯(cuò)誤提示信息
    onMarkError(markErrorPropArr) {
      if (!this.markErrorData) {
        this.markErrorData = {};
      }
      markErrorPropArr.forEach((fieldName) => {
        this.$set(
          this.markErrorData,
          fieldName,
          `對(duì)字段 ${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錯(cuò)誤提示信息手動(dòng)添加和取消的文章就介紹到這了,更多相關(guān)el-form錯(cuò)誤提示信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Vue計(jì)算屬性原理

    詳解Vue計(jì)算屬性原理

    計(jì)算屬性是Vue中比較好用的API,開(kāi)發(fā)者可以利用計(jì)算屬將復(fù)雜的計(jì)算進(jìn)行緩存,同時(shí)基于它的響應(yīng)式特性,我們無(wú)需關(guān)注數(shù)據(jù)更新問(wèn)題,但需要注意的是,計(jì)算屬性是惰性求值的,本文將詳細(xì)介紹計(jì)算屬性的實(shí)現(xiàn)原理,需要的朋友可以參考下
    2023-05-05
  • 解決vue項(xiàng)目中出現(xiàn)Invalid Host header的問(wèn)題

    解決vue項(xiàng)目中出現(xiàn)Invalid Host header的問(wèn)題

    這篇文章主要介紹了解決vue項(xiàng)目中出現(xiàn)"Invalid Host header"的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Vue事件處理原理及過(guò)程詳解

    Vue事件處理原理及過(guò)程詳解

    這篇文章主要介紹了vue事件處理原理及過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 使用Vue如何寫(xiě)一個(gè)雙向數(shù)據(jù)綁定(面試常見(jiàn))

    使用Vue如何寫(xiě)一個(gè)雙向數(shù)據(jù)綁定(面試常見(jiàn))

    這篇文章主要介紹了使用Vue如何寫(xiě)一個(gè)雙向數(shù)據(jù)綁定,在前端面試過(guò)程中經(jīng)常會(huì)問(wèn)到,文中主要實(shí)現(xiàn)v-model,v-bind 和v-click三個(gè)命令,其他命令也可以自行補(bǔ)充。需要的朋友可以參考下
    2018-04-04
  • vue項(xiàng)目index.html中使用環(huán)境變量的代碼示例

    vue項(xiàng)目index.html中使用環(huán)境變量的代碼示例

    在Vue3中使用環(huán)境變量的方式與Vue2基本相同,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目index.html中使用環(huán)境變量的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • vue中的自定義分頁(yè)插件組件的示例

    vue中的自定義分頁(yè)插件組件的示例

    這篇文章主要介紹了vue中的自定義分頁(yè)插件組件的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • vue3中的組件間的傳值(props)

    vue3中的組件間的傳值(props)

    這篇文章主要介紹了vue3中的組件間的傳值(props)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 一個(gè)因@click.stop引發(fā)的bug的解決

    一個(gè)因@click.stop引發(fā)的bug的解決

    這篇文章主要介紹了一個(gè)因@click.stop引發(fā)的bug的解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • VUE?mixin?使用示例詳解

    VUE?mixin?使用示例詳解

    混入mixin提供了一種非常靈活的方式,來(lái)分發(fā)Vue組件中的可復(fù)用功能,一個(gè)混入對(duì)象可以包含任意組件選項(xiàng),接下來(lái)通過(guò)本文給大家介紹VUE?mixin?使用,需要的朋友可以參考下
    2022-08-08
  • vue3 vite配置跨域及不生效問(wèn)題解決

    vue3 vite配置跨域及不生效問(wèn)題解決

    這篇文章主要介紹了vue3 vite配置跨域以及不生效問(wèn)題,本文給大家分享完美解決方案,需要的朋友可以參考下
    2023-07-07

最新評(píng)論