国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3在table里使用elementUI的form表單驗(yàn)證

這篇具有很好參考價(jià)值的文章主要介紹了vue3在table里使用elementUI的form表單驗(yàn)證。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

????????常規(guī)情況下。rules和formItem是一對(duì)一的。例如下面的情況,判斷表單內(nèi)的測(cè)試1和測(cè)試2是否為空。

<template>
    <el-form
        :model="formParams.form"
        :rules="formParams.rules"
    >
      <el-form-item label="測(cè)試1" prop="input1">
        <el-input v-model="formParams.form.input1"></el-input>
      </el-form-item>
      <el-form-item label="測(cè)試2" prop="input2">
        <el-input v-model="formParams.form.input2"></el-input>
      </el-form-item>
    </el-form>
</template>
<script lang="ts" setup>
import {reactive} from "vue";

const formParams = reactive({
  form:{
    input1: "",
    input2: ""
  },
  rules: {
    input1: {
      validator: validator_isEmpty,
      trigger: 'change'
    },
    input2: {
      validator: validator_isEmpty,
      trigger: 'change'
    }
  }
})
function validator_isEmpty (rule: any, value: string, callback: any)  {
  if (isEmpty(value)) {
  callback(new Error("必填項(xiàng),請(qǐng)輸入數(shù)據(jù)"));
} else {
  callback();
}
}
const isEmpty = function (value: any) {
  if (
      value === null ||
      value === undefined ||
      value === "" ||
      value.toString().trim() === "" ||
      value.length === 0 ||
      Object.keys(value.toString()).length === 0 ||
      JSON.stringify(value) === "[{}]"
  ) {
    return true;
  } else {
    return false;
  }
}
</script>
<style scoped lang="scss">

</style>

? ? ? ? 但是,如果在table中就按照常規(guī)的寫法如下會(huì)發(fā)現(xiàn)不管如何輸入或刪除都將觸發(fā)valid=false校驗(yàn)。如果在validator_isEmpty中打印value值會(huì)發(fā)現(xiàn),value一直未undefined。

<template>
  <el-form
      :model="tableData.data"
      :rules="tableData.rules"
  >
    <el-table
        :data="tableData.data">
      <el-table-column label="測(cè)試1">
        <template #default="scope">
          <el-form-item prop="input1">
            <el-input v-model="scope.row.input1"></el-input>
          </el-form-item>
        </template>
      </el-table-column>
      <el-table-column label="測(cè)試2">
        <template #default="scope">
          <el-form-item prop="input2">
            <el-input v-model="scope.row.input2"></el-input>
          </el-form-item>
        </template>
      </el-table-column>
    </el-table>
  </el-form>

</template>
<script lang="ts" setup>
import {reactive} from "vue";

let tableData = reactive({
data:[
  {
    input1: "",
    input2: ""
  }
],
rules: {
    input1: {
      validator: validator_isEmpty,
      trigger: 'change'
    },
    input2: {
      validator: validator_isEmpty,
      trigger: 'change'
    }
  }
})
const formParams = reactive({
  form: {
    input1: "",
    input2: ""
  },
  rules: {
    input1: {
      validator: validator_isEmpty,
      trigger: 'change'
    },
    input2: {
      validator: validator_isEmpty,
      trigger: 'change'
    }
  }
})

function validator_isEmpty(rule: any, value: string, callback: any) {
  if (isEmpty(value)) {
    callback(new Error("必填項(xiàng),請(qǐng)輸入數(shù)據(jù)"));
  } else {
    callback();
  }
}

const isEmpty = function (value: any) {
  if (
      value === null ||
      value === undefined ||
      value === "" ||
      value.toString().trim() === "" ||
      value.length === 0 ||
      Object.keys(value.toString()).length === 0 ||
      JSON.stringify(value) === "[{}]"
  ) {
    return true;
  } else {
    return false;
  }
}
</script>
<style scoped lang="scss">

</style>

? ? ? ? 所以使用下面的方式。但是有幾個(gè)重點(diǎn)。

1、外層的el-form的model需要關(guān)聯(lián)到tableData.data,否則使用validate方法將無法觸發(fā)

2、去掉外層el-form的rules屬性

3、對(duì)el-table-column里的el-form-item添加rules屬性,其中rules中的validator采用bind的方式傳遞行參數(shù)

4、對(duì)el-table-column里的el-form-item中prop屬性需要保留

之后的操作就跟普通的form驗(yàn)證一樣

<template>
  <el-form
      :model="tableData.data"
  >
    <el-table
        :data="tableData.data">
      <el-table-column label="測(cè)試1">
        <template #default="scope">
          <el-form-item prop="input1" :rules="{
            validator: validator_isEmpty_arg.bind(this, scope.row.input1),
            trigger: 'change'
          }">
            <el-input v-model="scope.row.input1"></el-input>
          </el-form-item>
        </template>
      </el-table-column>
      <el-table-column label="測(cè)試2">
        <template #default="scope">
          <el-form-item prop="input2" :rules="{
            validator: validator_isEmpty_arg.bind(this, scope.row.input2),
            trigger: 'change'
          }">
            <el-input v-model="scope.row.input2"></el-input>
          </el-form-item>
        </template>
      </el-table-column>
    </el-table>
  </el-form>

</template>
<script lang="ts" setup>
import {reactive} from "vue";

let tableData = reactive({
  data: [
    {
      input1: "",
      input2: ""
    }
  ]
})

function validator_isEmpty_arg(rowValue: any, rule: any,value: string, callback: any){
  if (isEmpty(rowValue)) {
    callback(new Error("必填項(xiàng),請(qǐng)輸入數(shù)據(jù)"));
  } else {
    callback();
  }
}

const isEmpty = function (value: any) {
  if (
      value === null ||
      value === undefined ||
      value === "" ||
      value.toString().trim() === "" ||
      value.length === 0 ||
      Object.keys(value.toString()).length === 0 ||
      JSON.stringify(value) === "[{}]"
  ) {
    return true;
  } else {
    return false;
  }
}
</script>
<style scoped lang="scss">

</style>

?文章來源地址http://www.zghlxwxcb.cn/news/detail-759727.html

到了這里,關(guān)于vue3在table里使用elementUI的form表單驗(yàn)證的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue2的ElementUI的form表單報(bào)錯(cuò)“Error: [ElementForm]unpected width”修復(fù)

    vue2的ElementUI的form表單報(bào)錯(cuò)“Error: [ElementForm]unpected width”修復(fù)

    ElementUI的form表單,當(dāng)動(dòng)態(tài)切換顯示表單時(shí)報(bào)錯(cuò) Error: [ElementForm]unpected width 。 翻譯過來就是form表單的label寬度width出了問題。 參數(shù) 說明 類型 可選值 默認(rèn)值 label-width 表單域標(biāo)簽的寬度,例如 ‘50px’。作為 Form 直接子元素的 form-item 會(huì)繼承該值。支持 auto。 string — — 查看這

    2024年02月21日
    瀏覽(19)
  • vue+elementui表單數(shù)組對(duì)象深層嵌套之自定義驗(yàn)證規(guī)則

    需求場(chǎng)景:在Vue+Elementui項(xiàng)目中,需要在表單的循環(huán)數(shù)組中,對(duì)某一深層嵌套的對(duì)象屬性制定自定義校驗(yàn)規(guī)則。

    2024年02月05日
    瀏覽(37)
  • vue3使用el-form實(shí)現(xiàn)登錄、注冊(cè)功能,且進(jìn)行表單驗(yàn)證(Element Plus中的el-form)

    vue3使用el-form實(shí)現(xiàn)登錄、注冊(cè)功能,且進(jìn)行表單驗(yàn)證(Element Plus中的el-form)

    簡介:Element Plus 中的 el-form 是一個(gè)表單組件,用于快速構(gòu)建表單并進(jìn)行數(shù)據(jù)校驗(yàn)。它提供了豐富的表單元素和驗(yàn)證規(guī)則,使表單開發(fā)變得更加簡單和高效??梢源钆鋏l-dialog實(shí)現(xiàn)當(dāng)前頁面的登錄、注冊(cè)頁 ,這兩天在vue3中用到了表單登錄,特意記錄一下,這里沒有封裝,直接使

    2024年02月07日
    瀏覽(129)
  • ElementUI的Form表單使用slot-scope=“scope“獲取當(dāng)前表格行數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)回顯、修改表單操作

    ElementUI的Form表單使用slot-scope=“scope“獲取當(dāng)前表格行數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)回顯、修改表單操作

    在寫項(xiàng)目時(shí),老師通過向后端發(fā)請(qǐng)求獲得表格原來的數(shù)據(jù)來填充修改表單里的數(shù)據(jù)。 這是表格: 這是點(diǎn)擊修改按鈕后顯示出來的修改表單: 但本地里都已經(jīng)有這些數(shù)據(jù)了,就沒必要再發(fā)一次請(qǐng)求,徒增服務(wù)器壓力。 準(zhǔn)備 可是該怎么獲得當(dāng)前行的數(shù)據(jù)填充上去呢?答案在

    2023年04月23日
    瀏覽(31)
  • ElementUI淺嘗輒止33:Form 表單

    包括各種表單項(xiàng),比如輸入框、選擇器、開關(guān)、單選框、多選框等。 W3C 標(biāo)準(zhǔn)中有如下規(guī)定: When there is only one single-line text input field in a form, the user agent should accept Enter in that field as a request to submit the form. 即:當(dāng)一個(gè) form 元素中只有一個(gè)輸入框時(shí),在該輸入框中按下回車應(yīng)提交

    2024年02月09日
    瀏覽(29)
  • elementUI表單驗(yàn)證之動(dòng)態(tài)表單驗(yàn)證

    elementUI表單驗(yàn)證之動(dòng)態(tài)表單驗(yàn)證

    elementUI 中 Form 組件提供了表單驗(yàn)證的功能,只需要通過? rules ?屬性傳入約定的驗(yàn)證規(guī)則,并將 Form-Item 的? prop ?屬性設(shè)置為需校驗(yàn)的字段名即可。 (1)常用表單驗(yàn)證 (2)自定義驗(yàn)證規(guī)則(:validator) ?有些需要自定義的校驗(yàn)規(guī)則可以作為變量寫在data中,然后賦值

    2024年02月11日
    瀏覽(29)
  • elementUI中的table動(dòng)態(tài)表單記錄

    elementUI中的table動(dòng)態(tài)表單記錄

    之前一直以為form表單是單獨(dú)使用,現(xiàn)在聯(lián)動(dòng)起來發(fā)現(xiàn)只是套了一層外殼,并不是很麻煩的事情 form的單獨(dú)使用 form與table的聯(lián)合 在table的column中使用solot?將form-item放入。需要注意的還是數(shù)據(jù)格式與rules form內(nèi)使用的是input輸入框,它所綁定的值當(dāng)前行數(shù)據(jù)的屬性? 原來的寫法是

    2024年02月10日
    瀏覽(19)
  • elementui表單的驗(yàn)證問題

    elementui表單的驗(yàn)證問題

    element ui 是基于vue的一個(gè)ui框架,用起來還是挺不錯(cuò)的,但是有時(shí)候還是會(huì)遇到一些摸不著頭腦的情況。 ? 我在打開一個(gè)新增數(shù)據(jù)的對(duì)話框的時(shí)候出現(xiàn)了一個(gè)問題,明明是新增,但是一打開就出現(xiàn)了錯(cuò)誤提示,這肯定是不對(duì)的,用戶體驗(yàn)也是極其不好的。到底是什么原因?qū)е?/p>

    2024年02月07日
    瀏覽(21)
  • ElementUI之CUD+表單驗(yàn)證

    ElementUI之CUD+表單驗(yàn)證

    ElementUI之CUD 表單驗(yàn)證 1.ElementUI之CUD 2.表單驗(yàn)證

    2024年02月07日
    瀏覽(20)
  • ElementUI之增刪改及表單驗(yàn)證

    ElementUI之增刪改及表單驗(yàn)證

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? 本文章收錄與ElementUI原創(chuàng)專欄 :ElementUI專欄 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? ElementUI的官網(wǎng): ElementUI官網(wǎng) 目錄 一.前言 二.使用ElementUI完成增刪改 ? ? ? ? 2.1 后臺(tái)代碼 ? ? ? ? 2.2 前端代

    2024年02月07日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包