Element-UI表单验证 二选一、三选一、多选一验证

Element-UI表单验证二选一验证

在表单提交过程中很多时候要用到几个表单项二选一验证或多选一验证,比如联系方式中的手机号和固定电话只需要填写一项就可通过验证,针对这样情况可以使用Element-UI的自定义验证实现,具体实现方法如下。

HTML代码

javascript 复制代码
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="form">
	<el-row :xs="24" style="width:96%">
		<el-col :span="8">
            <el-form-item label="简单:" prop="singleChoiceEasy" >
                <el-input v-model.number="ruleForm.singleChoiceEasy" placeholder="题量" @input="clearRule('singleChoiceDifficulty','singleChoiceMedium')"></el-input>
            </el-form-item>
        </el-col>
        <el-col :span="8">
            <el-form-item label="中等:" prop="singleChoiceMedium">
                <el-input v-model.number="ruleForm.singleChoiceMedium" placeholder="题量" @input="clearRule('singleChoiceDifficulty','singleChoiceEasy')"></el-input>
            </el-form-item>
        </el-col>
        <el-col :span="8">
            <el-form-item label="困难:" prop="singleChoiceDifficulty">
                <el-input v-model.number="ruleForm.singleChoiceDifficulty" placeholder="题量" @input="clearRule('singleChoiceEasy','singleChoiceMedium')"></el-input>
            </el-form-item>
        </el-col>
	</el-row>
</el-form>
javascript 复制代码
data() {
	var validateNum= (rule, value, callback) => {
        if (!this.ruleForm.singleChoiceEasy && !this.ruleForm.singleChoiceMedium && !this.ruleForm.singleChoiceDifficulty) {
            callback(new Error('请至少填写一项'));
        } else {
            callback();
        }
    };
    return {
		ruleForm: {},
		rules: {
			singleChoiceEasy: [
                { required: true,  validator: validateNum, trigger: 'blur' },
                { type: 'number', message: '必须为正整数', trigger: 'blur'}
            ],
            singleChoiceMedium: [
                { required: true,  validator: validateNum, trigger: 'blur' },
                { type: 'number', message: '必须为正整数', trigger: 'blur'}
            ],
            singleChoiceDifficulty: [
                { required: true,  validator: validateNum, trigger: 'blur' },
                { type: 'number', message: '必须为正整数', trigger: 'blur'}
            ]
		}
	}
},
methods: {
	clearRule(obj,obj1) {
//接收参数 表单prop
        this.$refs.ruleForm.clearValidate(obj);
        this.$refs.ruleForm.clearValidate(obj1);
    }
//另一种方式 表单@input 给他 
clearRule() {

        this.$refs.ruleForm.clearValidate();
        this.$refs.ruleForm.validateField(["singleChoiceEasy","singleChoiceMedium","singleChoiceDifficulty"]);
    }
}
相关推荐
struggle20257 小时前
helm-dashboard为Helm设计的缺失用户界面 - 可视化您的发布,它提供了一种基于UI的方式来查看已安装的Helm图表
开发语言·ui·计算机视觉·编辑器·知识图谱
黑金IT21 小时前
Python3 + Qt5:实现AJAX异步更新UI
qt·ui·ajax
喵叔哟1 天前
5. 【Vue实战--孢子记账--Web 版开发】-- 主页UI
前端·vue.js·ui
山海青风2 天前
Axure入门教程 -- 第五章:原型优化与调试
ui·交互·axure
浅陌sss3 天前
Unity 粒子特效在UI中使用裁剪效果
ui·unity·游戏引擎
机器视觉小小测试员4 天前
工业相机常用词语解释
运维·ui·自动化·工业相机
PersistJiao4 天前
Couchbase UI: Search
ui·couchbase
时光追逐者4 天前
一组开源、免费、Metro风格的 WPF UI 控件库
ui·开源·c#·.net·wpf·.netcore·微软技术
专注VB编程开发20年5 天前
代替Winform、Win32控件的一些界面框架Electron,QT等
前端·c++·ui·框架·界面
军训猫猫头5 天前
58.界面参数传递给Command C#例子 WPF例子
开发语言·ui·c#·wpf