出发时间和抵达时间的校验,当选择一方符合条件,关闭另一方时间校验
Html:
<el-form
class="input-event basic_form form"
:inline="true"
:model="formData"
:rules="rules"
ref="formData"
@submit.native.prevent>
<el-row>
<el-col :span="6">
<el-form-item label="出发时间" prop="cfsj">
<el-date-picker
v-model="formData.cfsj"
type="datetime"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm"
placeholder="选择日期"
default-time="12:00:00">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="抵达时间" prop="ddsj">
<el-date-picker
v-model="formData.ddsj"
type="datetime"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm"
placeholder="选择日期"
default-time="12:00:00">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
Script:
data() {
return {
formData: {
cfsj: '', // 出发时间
ddsj: '', // 抵达时间
},
rules:{
cfsj: [
{ required: true, message: '请选择出发时间', trigger: 'change' },
{
validator: this.getDdsj,
trigger: 'change',
},
],
ddsj: [
{ required: true, message: '请选择抵达时间', trigger: 'change' },
{
validator: this.getCfsj,
trigger: 'change',
},
],
}
}
}
methods:
// 出发时间和抵达时间校验 出发时间不能大于抵达时间
getDdsj(rule, val, callback) {
// 符合校验时关闭抵达时间校验
this.$refs['formData'].clearValidate(['ddsj']);
if (val > this.formData.ddsj && this.formData.ddsj) {
callback(new Error('出发时间不能大于抵达时间'));
} else {
callback();
}
},
getCfsj(rule, val, callback) {
// 符合校验时关闭出发时间校验
this.$refs['formData'].clearValidate(['cfsj']);
if (val < this.formData.cfsj && this.formData.cfsj) {
callback(new Error('出发时间不能大于抵达时间'));
} else {
callback();
}
},