当前位置:   article > 正文

element-plus el-date-picker daterange类型点击提交表单校验不触发问题。_element-plus datepick is-range不生效

element-plus datepick is-range不生效

前提:表单校验:model,:prop,v-model都是正确书写,input,select,类型为date的时间选择框表单校验都能正常触发。

问题描述:

        在项目中需要在表单中多次使用daterange类型的时间选择组件,但是在提交表单数据的时候,时间组件内容为空并没有触发校验规则。

        提交按钮不能正常校验代码:

  1. <el-form-item
  2. v-for="item in surfaceContamination"
  3. :label="item.label"
  4. :prop="item.prop"
  5. >
  6. <el-date-picker
  7. v-model="ruleForm[item.prop]"
  8. :type="item?.dataType"
  9. placeholder="选择时间"
  10. range-separator="至"
  11. start-placeholder="开始时间"
  12. end-placeholder="结束时间"
  13. v-if="item.type == 'time'"
  14. :disabled="item.disabled"
  15. :value-format="item.valueFormat"
  16. time-format="mm:ss"
  17. :style="
  18. item?.dataType == 'daterange'
  19. ? 'max-width: 300px'
  20. : 'max-width: 100%'
  21. "
  22. :disabled-date="item?.disabledDate"
  23. />
  24. </el-form-item>
  25. //验证规则 rules截取
  26. radio_monitorTime: [
  27. {
  28. required: type == "detials" ? false : true,
  29. message: "内容不能为空!",
  30. trigger: ["change", "blur"],
  31. },
  32. ],

      触发:只有当点击组件内部清空,确定按钮或者清空图标的时候才能触发表单验证。其他方式都不能触发表单验证。

解决问题:

        查阅element-plus文档Form 表单 | Element Plus

        查阅rules写法:GitHub - yiminghe/async-validator: validate form asynchronous

        1.设置需要校验数据的类型,因为daterange类型时间返回值是数组因此校验规则里面添加了type:array进行限制。

        2.校验失败写法中使用默认的校验方式,此处需要针对数组自定义校验函数。

  1. radio_monitorTime: [
  2. {
  3. type: 'array',
  4. required: type == "detials" ? false : true,
  5. message: "内容不能为空!",
  6. trigger: ["change", "blur"],
  7. validator: validatePass2,
  8. },
  9. ],
  10. const validatePass2 = (rule: any, value: any, callback: any) => {
  11. if (!value[0] || !value[1]) {
  12. callback(new Error("Please input the password again"));
  13. } else {
  14. callback();
  15. }
  16. };

分别去校验数组中不同值是否符合要求。做完这些再次点击提交按钮就可以按照我们自定义规则触发表单校验。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/890751
推荐阅读
相关标签
  

闽ICP备14008679号