首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何验证HTML5数据格式

如何验证HTML5数据格式
EN

Stack Overflow用户
提问于 2016-02-02 11:17:24
回答 3查看 22K关注 0票数 5

我想使用HTML5日期输入字段

代码语言:javascript
运行
复制
<input type='date' name='customDate'>

这样其他用户就可以使用他们浏览器中的内置数据报警器了。

我想检查输入是否实际上是日期格式的。正如我在这里发现的:有没有办法改变输入type=的“日期”格式?没有唯一的表示格式。例如,在Chrome中,日期字段的输入以dd.mm.yyyy的形式给出,在火狐24或IE9/10中,输入字段中的日期表示为YYYY DD

我的第一个问题是,如何告诉用户您希望他输入日期的格式?在Firefox中,我需要类似的东西

代码语言:javascript
运行
复制
<label>Enter Date(YYYY-MM-DD)</label><input type='date' 
                                         name='customDate' placeholder='YYYY-MM-DD'>

但这对Chrome来说是错误的。

第二,如何在提交之前检查当前输入是否为有效的日期格式(浏览器)?我知道如果日期格式是YYYY DD,我可以在提交后使用PHP进行检查,但是在提交之前如何使用JavaScript检查呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-02 13:07:53

我认为验证HTML5日期格式的最佳方法是,如果有可用的数据,则将作业留给数据报警器。

例如,chrome或ios5的本机数据报警器不允许输入错误的用户日期。在chrome中,它甚至检查日期是否存在于人类日历中。

如果浏览器没有本机数据报警器(如火狐),那么应该用现代器检测到这一点,并且应该使用jQuery UI数据报警器这里是一篇很好的文章,它解释了如何做到这一点。不幸的是,jQuery数据报警器不检查输入是否有效。但是,可以设置dateType和constrainInput,但它们不检查日期是否实际存在,只是语法是否正确。请注意,jquery验证插件有带有日期attribut的麻烦

票数 1
EN

Stack Overflow用户

发布于 2016-02-02 11:25:58

像这样使用它:

代码语言:javascript
运行
复制
<label>Enter Date(YYYY-MM-DD)</label>
<input type='date' name='customDate' placeholder='YYYY-MM-DD' pattern="(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))" >

关于所有其他HTML5日期模式,请访问以下内容:

http://html5pattern.com/Dates

票数 11
EN

Stack Overflow用户

发布于 2017-06-29 11:48:34

只需动态更改日期类型,使用onfocus和onblur,并验证如下所示。

代码语言:javascript
运行
复制
<input type="text" id="startDate" onfocus="(this.type='date')" onblur="{this.type='text'}" name="startDate" placeholder="Start Date(yyyy-mm-dd)"/>

$("#startDate").val()=""

最后,您的日期值为yyyy dd。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35151965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档