当手机号中的值为123验证码必填。
手机号为非123的值非必填。
代码示例:
<template> <div> <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="手机号" prop="phone"> <el-input autocomplete="on" name="phone" v-model="ruleForm.phone"></el-input> </el-form-item> <el-form-item label="验证码" prop="code" :rules="{ required: ruleForm.phone=='123'?true:false, message: '不能为空', trigger: 'change' }"> <el-select v-model="ruleForm.code" multiple filterable allow-create default-first-option placeholder="请选择"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button> <el-button @click="resetForm('ruleForm')">重置</el-button> </el-form-item> </el-form> </div> </template> <script> export default { data () { return { options: [{ value: 'HTML', label: 'HTML' }, { value: 'CSS', label: 'CSS' }, { value: 'JavaScript', label: 'JavaScript' }], ruleForm: { phone: '', code: '' }, rules: { phone: [ { required: true, trigger: 'blur', message: '手机号不能为空' } ] } } }, methods: { submitForm (formName) { this.$refs[formName].validate((valid) => { if (valid) { alert('submit!') } else { console.log('error submit!!') return false } }) }, resetForm (formName) { this.$refs[formName].resetFields() } } } </script>
方法2:
虽然实现当手机号为123出现必填项符号,但是却无法进行非空验证
<el-form-item label="验证码" :prop="ruleForm.phone == '123' ? 'code':''"> <el-select v-model="ruleForm.code" multiple filterable allow-create default-first-option placeholder="请选择"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item>