有没有办法以编程方式确定输入日期字段是不是不完整?

Posted

技术标签:

【中文标题】有没有办法以编程方式确定输入日期字段是不是不完整?【英文标题】:Is there a way to programmatically determine if an input date field is incomplete?有没有办法以编程方式确定输入日期字段是否不完整? 【发布时间】:2021-11-13 13:26:26 【问题描述】:

我遇到了以下问题:如何确定输入日期字段是否未完整提交?例如,如果我将12/09/aaaa作为值发送,实际发送的值是null,这与我发送gg/mm/aaaa得到的值相同,即空值。有没有办法通过JS区分这两种情况? (其实我用的是 Vue.js 但我觉得没那么重要。)

提前致谢!

【问题讨论】:

感谢所有回答的人。我将尝试构建自定义日期输入。祝你有美好的一天! :) 【参考方案1】:

在这种情况下,您可以使用正则表达式来验证所提供的输入是否是有效的日期格式。

您可以使用以下正则表达式

/^\d2\/\d2\/\d4$/ 

答案中提到regular expression to validate datetime format (MM/DD/YYYY)

您可以在 JS 中使用 (str).match(regex) 来使用此功能。

我分享了一种使用方法,正则表达式可以根据用例进行更新。

【讨论】:

【参考方案2】:

让 date = new Date('12/09/aaaa');

date == 'Invalid Date' //这将在日期无效时返回true

【讨论】:

【参考方案3】:

tl;dr:不,不是本机

问题

如果您使用原生 html 日期输入,则无法区分部分填充状态和完全空状态,因为根据规范,原生 HTML 日期输入必须为空或具有有效日期:

4.10.5.1.7 日期状态(类型=日期)

[...] 用户代理不得允许用户将value 设置为不是valid date string 的非空字符串。 [...]

value 属性如果已指定且不为空,则其值必须为 valid date string。

value sanitization algorithm如下:如果元素的value不是valid date string,则改为空字符串。

——reference

这意味着,当输入部分填充时,无论触发什么表单或输入事件(submitchange 等),输入的值都将为空字符串。

解决方案

您必须构建自己的自定义日期输入。

【讨论】:

以上是关于有没有办法以编程方式确定输入日期字段是不是不完整?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法以编程方式列出所有 gradle 依赖项?

有没有办法以编程方式将 R 源代码保存到文件中?

有没有办法以编程方式确定应该作为 Bing 地图中心的 GPS 坐标?

没有输入的jQuery日期选择器

有没有办法以编程方式列出所有gradle依赖项?

以编程方式确定 C++ 数组的大小?