關(guān)于vue2.0 + ele的表單循環(huán)以及對(duì)應(yīng)字段的驗(yàn)證!!!!!
html代碼
<el-form ref="ruleForm" :inline="true" :model="form" label-width="140px" :rules="rules" v-loading.fullscreen.lock="fullScreenLoading" element-loading-text="拼命加載中..."> <div v-for="(item, index) in form.xh" @click="handleindex(index)"> <el-form-item label="賬號(hào)" prop="tel"> <el-input v-model="item.tel" ></el-input> </el-form-item> <el-form-item label="姓名" prop="nickname" v-show="item.isnickname"> <el-input v-model="item.nickname"></el-input> </el-form-item> </div> <el-form-item label="年齡" prop="age"> <el-input v-model="form.age"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button> <el-button @click="onCancel">取消</el-button> </el-form-item> </el-form> script代碼
//引入接口import { fetchdata, } from 'src/api/login'export default { var checkTel = (rule, value, callback) => { //循環(huán)判斷這里是關(guān)鍵,這樣做才可以對(duì)循環(huán)里每一條做判斷 for (let i = 0; i < this.form.xh.length; i++) { value = this.form.xh[i].tel; var vdt = this.VDT.vdata(value, { //這里需要你自己去在另一個(gè)文件里配上 'required': {msg: '請(qǐng)?zhí)顚?xiě)賬號(hào)'} }); if (!vdt.result) { callback(new Error(vdt.msg)); } else { callback(); } } }; var checkNickname = (rule, value, callback) => { for (let i = 0; i < this.form.xh.length; i++) { //先判斷有沒(méi)有姓名,假使nickname為false那就不要驗(yàn)證 if (this.form.xh[i].isNickname) { value = this.form.xh[i].nickname; var vdt = this.VDT.vdata(value, { //這里需要你自己去在另一個(gè)文件里配上 'required': {msg: '請(qǐng)?zhí)顚?xiě)姓名'} }); if (!vdt.result) { callback(new Error(vdt.msg)); } else { callback(); } } else { callback(); } } }; //因?yàn)檫@里不是循環(huán)里面的,所以value對(duì)應(yīng)的值就一個(gè)故可直接使用 var checkAge = (rule, value, callback) => { var vdt = this.VDT.vdata(value, {'required': {msg: '請(qǐng)?zhí)顚?xiě)年齡'}}); if (!vdt.result) { callback(new Error(vdt.msg)); } else { callback(); } }; return { form: { xh:[{ tel, nickname, isnickname:false, //附一個(gè)初始值,默認(rèn)不顯示。 }], age:'', id:'1', }, rules: { tel: [{required: true, validator:checkTel,trigger: 'blur',}], nickname: [{required: true, validator:checkNickname,trigger: 'blur',}], age: [{required: true, validator:checkAge,trigger: 'blur',}], }, }, }, created() { this.getData(); }, methods: { getData() { this.fullScreenLoading = true; fetchdata(this.id).then(response => { //這里請(qǐng)求對(duì)應(yīng)的接口 if(response.data.success == true) { this.fullScreenLoading = false; this.form = response.data.data; //返回?cái)?shù)據(jù)賦給表單 }else{ this.fullScreenLoading = false; return false; } } }}本文只是作者在開(kāi)發(fā)時(shí)總結(jié)出來(lái)的經(jīng)驗(yàn),希望可以有所幫助。
以上這篇vue2.0 + ele的循環(huán)表單及驗(yàn)證字段方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注