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

vue兩個(gè)輸入框聯(lián)動(dòng)校驗(yàn)方式(最大值-最小值)

 更新時(shí)間:2022年10月08日 10:08:56   作者:RAY_CHEN.  
這篇文章主要介紹了vue兩個(gè)輸入框聯(lián)動(dòng)校驗(yàn)方式(最大值-最小值),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue兩個(gè)輸入框聯(lián)動(dòng)校驗(yàn)

如下圖,

 1.滿足最大值和最小值的輸入要求【1-100的整數(shù)】

2.滿足最小值不能大于等于最大值

3.當(dāng)最小值有報(bào)紅校驗(yàn),改正最大值使得最大值大于最小值,最小值的報(bào)紅校驗(yàn)消失

html代碼

 最大值:

<el-input v-model="restoreForm.maxrate" placeholder="請(qǐng)輸入" style="margin-left:5px;width:140px" @blur="checknum('max')"></el-input>

                

最小值:

<el-input v-model="restoreForm.restorerate" placeholder="請(qǐng)輸入" style="margin-left:5px;width:140px" @blur="checknum('min')"></el-input>

代碼不全,僅作參考

data中的validate校驗(yàn)

//最小值
    const checkrestorerate = (rule, value, callback) => {
      const { maxrate, restorerate } = this.restoreForm;
 
      // let reg = /^([1-9]|[1-9]\d|1\d{2}|100)$/;
      let reg = /^([1-9][0-9]{0,1}|100)$/;
      if (!reg.test(restorerate)) {
        return callback(new Error("請(qǐng)輸入1-100內(nèi)整數(shù)"));
      } else {
        if (
          Number(maxrate) &&
          Number(restorerate) &&
          Number(restorerate) >= Number(maxrate)
        ) {
          return callback(new Error("最小值需小于最大值"));
        } else {
          return callback();
        }
      }
    };
    //最大值
    const checkmaxrate = (rule, value, callback) => {
      const { maxrate, restorerate } = this.restoreForm;
      let reg = /^([1-9][0-9]{0,1}|100)$/;
      if (!reg.test(maxrate)) {
        return callback(new Error("請(qǐng)輸入1-100內(nèi)整數(shù)"));
      } else {
        if (
          Number(maxrate) &&
          Number(restorerate) &&
          Number(restorerate) >= Number(maxrate)
        ) {
          return callback(new Error("最小值需小于最大值"));
        } else {
          return callback();
        }
      }
    };
 checknum(type) {
      if (type === "max") {
        if (this.restoreForm.maxrate > this.restoreForm.restorerate) {
          this.$refs.restoreForm.validateField("restorerate");
        }
      } else {
        if (this.restoreForm.maxrate > this.restoreForm.restorerate) {
          this.$refs.restoreForm.validateField("maxrate");
        }
       
      }
    },

這個(gè)方法首先判斷是哪個(gè)輸入框的blur事件,然后如果符合最大值大于最小值,那么之前最小值的報(bào)錯(cuò)校驗(yàn)再次校驗(yàn),為符合條件,即報(bào)紅提示消失

vue表單中范圍兩個(gè)輸入框共用一個(gè)驗(yàn)證

最近碰到一個(gè)需求,就是一個(gè)有一項(xiàng)數(shù)據(jù)取一個(gè)范圍,并做驗(yàn)證,但是UI的驗(yàn)證提醒文字是合并在一起的,并不是每個(gè)輸入框有單獨(dú)的驗(yàn)證提醒,本文以elementUI為例,按需求進(jìn)行了一些改動(dòng)。

<template>
  <div class="app-container">
    <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
      <el-form-item label="范圍" prop="area">
        <el-col :span="11">
          <el-form-item prop="start">
            <el-input v-model="ruleForm.start" placeholder="請(qǐng)輸入起始值(0-1000)" />
          </el-form-item>
        </el-col>
        <el-col class="line" :span="2" style="text-align:center">-</el-col>
        <el-col :span="11">
          <el-form-item prop="end">
            <el-input v-model="ruleForm.end" placeholder="請(qǐng)輸入結(jié)束值(0-1000)" />
          </el-form-item>
        </el-col>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>
<script>
export default {
  data() {
    const validateStart = (rule, value, callback) => {
      if (!!value) {
        // 1-1000的正則
        const numReg = /^(?!00)(?:[0-9]{1,3}|1000)$/
        if (!numReg.test(value)) {
          this.ruleForm.areaRules[0] = 1
          // 手動(dòng)觸發(fā)最外層form-item的正則驗(yàn)證
          this.areaBlur()
          return callback()
        }
        if (numReg.test(value)) {
          this.ruleForm.areaRules[0] = 2
          this.areaBlur()
          return callback()
        }
        this.ruleForm.areaRules[0] = 0
        this.areaBlur()
        callback()
      } else {
        this.ruleForm.areaRules[0] = -1
        this.areaBlur()
        return callback()
      }
    }
    const validateEnd = (rule, value, callback) => {
      if (!!value) {
        // 1-1000的正則
        const numReg = /^(?!00)(?:[0-9]{1,3}|1000)$/
        if (!numReg.test(value)) {
          this.ruleForm.areaRules[1] = 1
          this.areaBlur()
          return callback()
        }
        if (numReg.test(value)) {
          this.ruleForm.areaRules[1] = 2
          this.areaBlur()
          return callback()
        }
        this.ruleForm.areaRules[1] = 0
        this.areaBlur()
        callback()
      } else {
        this.ruleForm.areaRules[1] = -1
        this.areaBlur()
        return callback()
      }
    }
    // areaRules內(nèi)值的含義:-1 提醒不能為空 0則表示正常 其他值為格式錯(cuò)誤
    const validateArea = (rule, value, callback) => {
      if (this.ruleForm.areaRules.includes(-1)) {
        return callback(new Error('范圍不能為空'))
      }
      if (this.ruleForm.areaRules[0] !== this.ruleForm.areaRules[1] || this.ruleForm.areaRules[0] === 1 || this.ruleForm.areaRules[1] === 1) {
        return callback(new Error('格式錯(cuò)誤'))
      }
      if (this.ruleForm.start > this.ruleForm.end) {
        return callback(new Error('起始序號(hào)不能大于截止序號(hào)'))
      }
      callback()
    }
    return {
      ruleForm: {
        start: '',
        end: '',
        areaRules: [-1, -1]
      },
      rules: {
        start: [{ type: 'string', required: true, validator: validateStart, trigger: 'blur' }],
        end: [{ type: 'string', required: true, validator: validateEnd, trigger: 'blur' }],
        area: [{ type: 'array', required: true, validator: validateArea, trigger: 'change' }]
      }
    }
  },
  methods: {
    submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          alert('submit!')
        } else {
          console.log('error submit!!')
          return false
        }
      })
    },
    // 手動(dòng)觸發(fā)最外層form-item的正則驗(yàn)證
    areaBlur() {
      this.$refs['ruleForm'].validateField('area')
    }
  }
}
</script>

效果:

不僅是elementUI,其他前端框架也是可以這樣改的,只是需要一些細(xì)節(jié)

該方式還可以在填寫(xiě)ip地址的時(shí)候應(yīng)用

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 17個(gè)vue常用的數(shù)組方法總結(jié)與實(shí)例演示

    17個(gè)vue常用的數(shù)組方法總結(jié)與實(shí)例演示

    這篇文章主要介紹了vue中常用的數(shù)組方法,包括:VUE數(shù)組轉(zhuǎn)換字符串,VUE數(shù)組遍歷,VUE數(shù)組過(guò)濾,VUE數(shù)組查詢,VUE數(shù)組排序等功能,需要的朋友可以參考下
    2022-12-12
  • vue-element-admin開(kāi)發(fā)教程(v4.0.0之后)

    vue-element-admin開(kāi)發(fā)教程(v4.0.0之后)

    由于vue-element-admin的架構(gòu)再4.0.0版本后做了重構(gòu),整體結(jié)構(gòu)上和之前的還是很相似的,但是也有些變化,本文就介紹vue-element-admin開(kāi)發(fā)教程(v4.0.0之后),感興趣的可以了解一下
    2022-04-04
  • Vue+elementUI下拉框自定義顏色選擇器方式

    Vue+elementUI下拉框自定義顏色選擇器方式

    這篇文章主要介紹了Vue+elementUI下拉框自定義顏色選擇器方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Vuejs 實(shí)現(xiàn)簡(jiǎn)易 todoList 功能 與 組件實(shí)例代碼

    Vuejs 實(shí)現(xiàn)簡(jiǎn)易 todoList 功能 與 組件實(shí)例代碼

    本文通過(guò)實(shí)例代碼給大家介紹了Vuejs 實(shí)現(xiàn)簡(jiǎn)易 todoList 功能 與 組件,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • 深入理解Vue父子組件生命周期執(zhí)行順序及鉤子函數(shù)

    深入理解Vue父子組件生命周期執(zhí)行順序及鉤子函數(shù)

    本文通過(guò)實(shí)例代碼給大家介紹了Vue父子組件生命周期執(zhí)行順序及鉤子函數(shù)的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-08-08
  • vue封裝公共方法的實(shí)現(xiàn)代碼

    vue封裝公共方法的實(shí)現(xiàn)代碼

    這篇文章給大家介紹了vue封裝公共方法的實(shí)現(xiàn),文章中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • 基于Vue實(shí)現(xiàn)一個(gè)textarea幽靈建議功能

    基于Vue實(shí)現(xiàn)一個(gè)textarea幽靈建議功能

    不知道你有沒(méi)有發(fā)現(xiàn)Bing AI聊天有個(gè)輸入提示功能,在用戶輸入部分內(nèi)容時(shí)后面會(huì)給出灰色提示文案,用戶只要按下tab鍵就可以快速添加提示的后續(xù)內(nèi)容,我將這個(gè)功能稱為幽靈建議,接下來(lái)我將用Vue框架來(lái)實(shí)現(xiàn)這個(gè)功能,需要的朋友可以參考下
    2023-09-09
  • vue2 webpack proxy與nginx配置方式

    vue2 webpack proxy與nginx配置方式

    這篇文章主要介紹了vue2 webpack proxy與nginx配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue開(kāi)發(fā)利器之unplugin-auto-import的使用

    vue開(kāi)發(fā)利器之unplugin-auto-import的使用

    unplugin-auto-import 解決了vue3-hook、vue-router、useVue等多個(gè)插件的自動(dòng)導(dǎo)入,也支持自定義插件的自動(dòng)導(dǎo)入,下面這篇文章主要給大家介紹了關(guān)于vue開(kāi)發(fā)利器之unplugin-auto-import使用的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 在vue中讀取本地Json文件的方法

    在vue中讀取本地Json文件的方法

    今天小編就為大家分享一篇在vue中讀取本地Json文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09

最新評(píng)論

横山县| 方城县| 绥德县| 苗栗市| 望城县| 如皋市| 太保市| 盐池县| 阜新市| 洛浦县| 东海县| 辛集市| 浪卡子县| 冷水江市| 兰坪| 芦溪县| 聂拉木县| 洪泽县| 沧州市| SHOW| 南川市| 仁寿县| 岑巩县| 寻乌县| 甘洛县| 繁峙县| 杭锦旗| 鞍山市| 延寿县| 峡江县| 昭觉县| 大城县| 儋州市| 府谷县| 茂名市| 阜新市| 太保市| 万安县| 通州区| 固镇县| 平潭县|