【问题标题】:webkit input type=date sending empty value on incorrect datewebkit 输入类型=日期在不正确的日期发送空值
【发布时间】:2016-05-05 21:32:11
【问题描述】:

我正在验证日期并轻松检查了对浏览器的支持,并且验证功能在 Firefox 上运行良好,因为当我发送无效日期时,我会尝试根据收到的值创建一个新日期。如果新日期的值为“无效日期”,则返回 false 并带有错误消息的警报。 问题是在 chrome 上,这根本不起作用。 每当日期为空时,我都会执行我的 ajax(因为我想让用户将日期字段留空并且仍然能够过滤数据)。

但是,在 Chrome 中,因为当我插入无效日期(例如 2016-02-31)时它会将值发送为空,所以执行 ajax 时会认为该字段不是空的。我想防止这种情况发生。

我正在检查所有可以执行此操作的 html 属性和事件,但我不确定应该使用什么。我尝试 onerror 传递一个返回 false 的函数。没有改变。 可能是 onpatternmismatch?

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    您可以通过以下方式检测此类无效日期:

    • input.validity.badInput 如果您想检测此特定错误
    • !input.validity.valid!input.checkValidity() 如果您想检测最小/最大/所需的有效性错误以及无效日期
    • !form.checkValidity() 如果您想检测与表单关联的所有元素的有效性错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 2014-10-26
      相关资源
      最近更新 更多