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

【vue】element-ui的form數(shù)組表單驗(yàn)證(循環(huán)表單驗(yàn)證)

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

基于vue2.0element-uiform表單驗(yàn)證比較簡單,但是有些同學(xué)可能對(duì)于數(shù)組類型的表單驗(yàn)證無從下手,這里我基于一個(gè)我自己項(xiàng)目中的例子,展示一下怎么進(jìn)行數(shù)組的表單驗(yàn)證。

項(xiàng)目截圖:

el-form數(shù)組驗(yàn)證,vue,vue,javascript,前端,elementui

上代碼,為了讓大家看起來比較清晰,我刪掉了無關(guān)的代碼:

<template>
<div class="create_send">
   <el-form ref="refForm" :model="formData" :rules="rules">
        <el-form-item label="選擇事件:" prop="eventCode">
            <el-select v-model="formData.eventCode" placeholder="請(qǐng)選擇">
                <el-option
                v-for="item in eventoptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
                </el-option>
            </el-select>
        </el-form-item>
    </el-form>
    <el-form  v-for="(item,index) in formData.ruleList" :ref="`refForm${index}`" :key="index" :model="item" :rules="rules">
        <el-form-item label="倒計(jì)時(shí)天數(shù):" prop="ruleString" class="err_position">
            <el-input v-model="item.ruleString" style="width:207px;float:left" placeholder="請(qǐng)輸入內(nèi)容"></el-input>
        </el-form-item>
    </el-form>
</div>
</template>
<script>
import { sysDictMoreType } from '@/api/neo/shareHouse'
export default {
    data(){
        return {
            formData:{
                eventCode:"",
                eventName:"",
                ruleList:[
                    {
                        ruleString:""
                    }
                ]
            },
            eventoptions:[],
            rules:{
                eventCode:[{required:true,message:"請(qǐng)選擇事件類型",trigger:"change"}],
                ruleString:[{required:true,message:"請(qǐng)?zhí)顚懙褂?jì)時(shí)天數(shù)",trigger:"blur"}],
            }
        }
    },
    mounted(){
        this.getSelectData()
    },
    methods:{
        confirm(){
            Promise.all([
                this.validateForm("refForm"),
                ...this.formData.ruleList.map((item,index)=>this.validateForm(`refForm${index}`))
            ]).then(res=>{
                if(res) {
                    // 表單驗(yàn)證通過
                }
            })
        },
        validateForm(refs){
            let valiForm = this.$refs?.[refs].validate?this.$refs?.[refs]:this.$refs?.[refs][0]
            return new Promise((resolve,reject)=>{
                valiForm.validate(res=>{
                    if(res) resolve()
                    else reject()
                })
            })
        },
        getSelectData(){//獲取下拉選擇框列表
            sysDictMoreType(["im_event_code"]).then(res=>{
                this.eventoptions = res?.data?.im_event_code||[]
            })
        },
        addEvent(){//新增一條發(fā)送時(shí)間
            this.formData.ruleList.push({
                ruleString:""
            })
        },
        deleteEvent(){//刪除一條發(fā)送時(shí)間,忽略},
    },
}
</script>
<style lang="scss">
//節(jié)省篇幅,刪掉了css
</style>

咱們把數(shù)組驗(yàn)證的部分拿出來看:

<el-form  v-for="(item,index) in formData.ruleList"  :key="index" :model="item" :rules="rules">
     <el-form-item label="倒計(jì)時(shí)天數(shù):" prop="ruleString" class="err_position">
         <el-input v-model="item.ruleString" style="width:207px;float:left" placeholder="請(qǐng)輸入內(nèi)容"></el-input>
     </el-form-item>
 </el-form>

上邊代碼最關(guān)鍵的地方就是:

:ref="`refForm${index}`"

因?yàn)?code>ref不能相同,咱們?nèi)〉?code>index用來拼接不同的ref字符串。
然后在表單驗(yàn)證的時(shí)候就可以循環(huán)的進(jìn)行獲取refs并驗(yàn)證了,下面這倆函數(shù)大家可以直接復(fù)制一下拿去用,保證有用:

confirm(){
     //用Promise.all進(jìn)行全部form表單的驗(yàn)證
     Promise.all([
         //非數(shù)組部分的表單
         this.validateForm("refForm"),
         //數(shù)組部分的表單,用map返回驗(yàn)證函數(shù)的調(diào)用
         ...this.formData.ruleList.map((item,index)=>this.validateForm(`refForm${index}`))
     ]).then(res=>{
         if(res) {
             // 全部表單驗(yàn)證通過
         }
     })
 },
 validateForm(refs){
 	  //獲取到form表單的dom,如果是對(duì)象直接拿到,如果是數(shù)組,就拿第一個(gè)
 	  //elementui對(duì)循環(huán)的form包裝成了數(shù)組
     let valiForm = this.$refs?.[refs].validate?this.$refs?.[refs]:this.$refs?.[refs][0]
     return new Promise((resolve,reject)=>{
         //在Promise里進(jìn)行驗(yàn)證,如果通過就resolve()
         valiForm.validate(res=>{
             if(res) resolve()
             else reject()
         })
     })
 },

有幫助的話,點(diǎn)個(gè)贊唄!

上一篇:nodejs如何讀取并修改文件內(nèi)容?
下一篇:js發(fā)布-訂閱模式(觀察者模式)文章來源地址http://www.zghlxwxcb.cn/news/detail-731868.html

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

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(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)文章

  • vue:element-ui表單動(dòng)態(tài)驗(yàn)證規(guī)則

    vue:element-ui表單動(dòng)態(tài)驗(yàn)證規(guī)則

    實(shí)現(xiàn)當(dāng)是否發(fā)送消息選擇是時(shí),業(yè)務(wù)類型字段必填。 當(dāng)你在一個(gè)表單中使用 el-form 和 el-form-item 來創(chuàng)建表單項(xiàng)時(shí), el-form-item 的 :rules 屬性可以用來設(shè)置該表單項(xiàng)的驗(yàn)證規(guī)則。我們希望根據(jù)用戶在 \\\"是否發(fā)送消息\\\" 這個(gè)表單項(xiàng)中的選擇動(dòng)態(tài)設(shè)置 \\\"業(yè)務(wù)類型\\\" 這個(gè)表單項(xiàng)的驗(yàn)證規(guī)則

    2024年01月23日
    瀏覽(30)
  • vue +element UI form表單校驗(yàn)數(shù)組嵌套,數(shù)組對(duì)象必填校驗(yàn)

    vue +element UI form表單校驗(yàn)數(shù)組嵌套,數(shù)組對(duì)象必填校驗(yàn)

    使用element表單時(shí)會(huì)出現(xiàn)數(shù)組對(duì)象類型的數(shù)據(jù)結(jié)構(gòu)并且需要必填校驗(yàn) 這時(shí)數(shù)組對(duì)象的檢驗(yàn)方法就為paramJsonListRules 注意的是為了實(shí)現(xiàn)校驗(yàn),在需要校驗(yàn)的el-form-item內(nèi)通過自己的:rules加入對(duì)象的校驗(yàn)方法,例如圖中想給參數(shù)值加校驗(yàn)則直接在相關(guān)el-form-item內(nèi)加入 :rules=\\\"paramJsonLis

    2024年02月11日
    瀏覽(30)
  • 在vue項(xiàng)目里,Element-Ui中el-form 實(shí)現(xiàn)一行兩個(gè)表單效果

    在vue項(xiàng)目里,Element-Ui中el-form 實(shí)現(xiàn)一行兩個(gè)表單效果

    1.首先使用elementUi中的Layout 24分欄進(jìn)行布局,將整個(gè)form表單放入24分欄里 如圖所示: 2.再將需要同行顯示的表單放入el-row中的el-col中去 3.然后再根據(jù)你的需求控制一下表單大小就ok啦? 全部代碼: 效果圖如下: ?

    2024年02月11日
    瀏覽(32)
  • element-ui的form表單校驗(yàn)

    form表單校驗(yàn)基本三步: 1、定義驗(yàn)證規(guī)則 在data中定義表單校驗(yàn)規(guī)則,一個(gè)表單項(xiàng)可定義多條規(guī)則,表單項(xiàng)規(guī)則用數(shù)組,規(guī)則為對(duì)象,required為必須填寫,message為校驗(yàn)提示信息,trigger為校驗(yàn)時(shí)機(jī),可選blur和change,分別為失去焦點(diǎn)和數(shù)據(jù)變化;min/max為最小與最大字符個(gè)數(shù),v

    2024年02月11日
    瀏覽(27)
  • VUE element-ui之form表單中input輸入超過規(guī)定長度error提醒,并實(shí)時(shí)顯示輸入長度,可無限輸入

    VUE element-ui之form表單中input輸入超過規(guī)定長度error提醒,并實(shí)時(shí)顯示輸入長度,可無限輸入

    需求:輸入超過規(guī)定長度error提醒,并實(shí)時(shí)顯示輸入長度,可無限輸入 步驟: 我的項(xiàng)目中使用校驗(yàn)比較多,所以進(jìn)行簡單的封裝: 新建js文件寫入下面的函數(shù) 需要校驗(yàn)的組件引用使用: data中定義: form表單中prop要和rules中定義校驗(yàn)名一致: 看效果: 可以看到我們自定義n

    2024年02月16日
    瀏覽(32)
  • Element-UI form表單 resetFields() 重置表單無效問題

    Element-UI form表單 resetFields() 重置表單無效問題

    原因:?resetFields() 是將表單項(xiàng)重置為初始值,而這個(gè)初始值是在 Vue mounted 時(shí)賦值上去的,如果在這之前對(duì)表單進(jìn)行了賦值,則初始值會(huì)改變,那么后面調(diào)用 resetFields() 則不會(huì)生效(不會(huì)是定義時(shí)的空值) 方法1:將賦值操作定義在 this.$nextTick() 中(保證了初始值不被修改)

    2024年02月11日
    瀏覽(18)
  • element-ui form表單校驗(yàn) 失敗的原因

    element-ui form表單校驗(yàn) 失敗的原因

    1、沒有在el-form上指定model 2、el-form-item上的prop名稱不對(duì),應(yīng)當(dāng)與rules中的名稱一致; 3、綁定的屬性沒有在data中聲明; 4、特別重要的一點(diǎn)是ruleForm(數(shù)據(jù))和rules(校驗(yàn)規(guī)則)里面對(duì)應(yīng)的key一定要相同,一個(gè)是數(shù)據(jù)綁定的值 另外一個(gè)是值的規(guī)則。

    2024年02月11日
    瀏覽(24)
  • Element-UI可以動(dòng)態(tài)生成的form表單

    Element-UI可以動(dòng)態(tài)生成的form表單

    此form表單每一項(xiàng)綁定的值組成一個(gè)對(duì)象,對(duì)象疊加組成了一個(gè)對(duì)象數(shù)組,循環(huán)對(duì)象數(shù)組生成form的表單項(xiàng)。當(dāng)點(diǎn)擊新增一項(xiàng)時(shí),其實(shí)就是給form表單對(duì)象數(shù)組添加一個(gè)對(duì)象,刪除則反之。值得注意的是,由于動(dòng)態(tài)表單得到的是一個(gè)對(duì)象數(shù)組,但我們需要的是表單的值組成的對(duì)象

    2024年02月11日
    瀏覽(25)
  • element-ui form表單的動(dòng)態(tài)rules校驗(yàn)

    element-ui form表單的動(dòng)態(tài)rules校驗(yàn)

    在vue 項(xiàng)目中,有時(shí)候可能會(huì)用到element-ui form表單的動(dòng)態(tài)rules校驗(yàn),比如說選擇了哪個(gè)選項(xiàng),然后動(dòng)態(tài)顯示或者禁用等等。 我們可以巧妙的運(yùn)用element-ui form表單里面form-item想的校驗(yàn)規(guī)則來處理(每一個(gè)form-item項(xiàng)都可以單獨(dú)校驗(yàn))。 上代碼: 重點(diǎn)是這個(gè): :rules=“sqyxForm.jtpslx

    2024年02月15日
    瀏覽(23)
  • Element UI 多個(gè)Form表單同時(shí)驗(yàn)證

    這里講的主要是Element UI 組件的表單驗(yàn)證,Element UI 的Form表單驗(yàn)證是依靠 ref 來進(jìn)行的,但是當(dāng)一個(gè)頁面有用到多個(gè)Form表單的時(shí)候,又要同時(shí)對(duì)這多個(gè)表單進(jìn)行驗(yàn)證,這個(gè)時(shí)候?qū)懺诤竺娴腇orm表單會(huì)覆蓋前面的樣式,導(dǎo)致只會(huì)驗(yàn)證最后一個(gè) 解決方案:

    2024年02月11日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包