elementui的form组件中使用日期选择器,整体表单校验失败的解决办法

注意点:

1. 一定要对DatePicker日期选择器指定   value-format="yyyy-MM-dd"     这个属性

<el-date-picker v-model="formData.dataTime" type="date" placeholder="选择日期" >

2. 然后表单项el-form-item的  prop  一定要和  v-model   的保持一致

3. 日期选择器校验部分    type加不加都行,事件change或者blur都可以的

dataTime: [
  {
    // type: 'string',
    required: true,
    message: '请选择日期',
    // trigger: 'change',
    trigger: 'blur',
  },
],

下面是完整代码

<template>
  <div class="picker">
    <el-form :model="formData" ref="form1" :rules="rules">
      <el-form-item label="选择时间" prop="dataTime">
        <el-date-picker
          v-model="formData.dataTime"
          type="date"
          placeholder="选择日期"
        >
        </el-date-picker>
      </el-form-item>
      <el-form-item label="活动名称" prop="name">
        <el-input v-model="formData.name"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="validatorForm('form1')"
          >提交</el-button
        >
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      // 表单数据源
      formData: {
        dataTime: '',
        name: '',
      },
      // 表单规则
      rules: {
        dataTime: [
          {
            // type: 'string',
            required: true,
            message: '请选择日期',
            // trigger: 'change',
            trigger: 'blur',
          },
        ],
        name: [{ required: true, message: '请输入内容', trigger: 'blur' }],
      },
    }
  },
  methods: {
    validatorForm(formName) {
      this.$refs[formName].validate((valid) => {
        console.log(valid)
        if (!valid) {
          this.$message.error('提交失败')
        } else {
          this.$message({
            showClose: true,
            message: '提交成功',
            type: 'success',
          })
        }
      })
    },
  },
}
</script>

效果如下

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Element UI的时间选择,你可以通过使用校验规则来进行校验。下面是一个示例代码,展示了如何使用Element UI的校验规则来校验时间选择: ```html <template> <el-form ref="form" :model="formData" :rules="formRules" label-width="100px"> <el-form-item label="选择时间" prop="time"> <el-time-picker v-model="formData.time" :picker-options="pickerOptions"></el-time-picker> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { formData: { time: '' }, formRules: { time: [ { required: true, message: '请选择时间', trigger: 'blur' } // 添加其他校验规则 ] }, pickerOptions: { // 时间选择的选项 // 可以根据需求进行自定义配置 } } }, methods: { submitForm() { this.$refs.form.validate((valid) => { if (valid) { // 校验通过,可以进行提交操作 } else { // 校验不通过,做相应处理 } }); } } } </script> ``` 在上述代码,我们使用了`el-form`组件来创建一个,其的`el-time-picker`组件用于选择时间。在`data`,我们定义了`formData`来保存数据,`formRules`来定义校验规则。在`submitForm`方法,通过调用`this.$refs.form.validate`方法来触发校验。如果校验通过,可以进行提交操作;如果校验不通过,可以进行相应的处理。 你可以根据实际需求自定义校验规则和时间选择的选项。希望对你有帮助!如果有更多问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值