我想使用HTML5日期输入字段
<input type='date' name='customDate'>
这样其他用户就可以使用他们浏览器中的内置数据报警器了。
我想检查输入是否实际上是日期格式的。正如我在这里发现的:有没有办法改变输入type=的“日期”格式?没有唯一的表示格式。例如,在Chrome中,日期字段的输入以dd.mm.yyyy的形式给出,在火狐24或IE9/10中,输入字段中的日期表示为YYYY DD。
我的第一个问题是,如何告诉用户您希望他输入日期的格式?在Firefox中,我需要类似的东西
<label>Enter Date(YYYY-MM-DD)</label><input type='date'
name='customDate' placeholder='YYYY-MM-DD'>
但这对Chrome来说是错误的。
第二,如何在提交之前检查当前输入是否为有效的日期格式(浏览器)?我知道如果日期格式是YYYY DD,我可以在提交后使用PHP进行检查,但是在提交之前如何使用JavaScript检查呢?
发布于 2016-02-02 13:07:53
我认为验证HTML5日期格式的最佳方法是,如果有可用的数据,则将作业留给数据报警器。
例如,chrome或ios5的本机数据报警器不允许输入错误的用户日期。在chrome中,它甚至检查日期是否存在于人类日历中。
如果浏览器没有本机数据报警器(如火狐),那么应该用现代器检测到这一点,并且应该使用jQuery UI数据报警器。这里是一篇很好的文章,它解释了如何做到这一点。不幸的是,jQuery数据报警器不检查输入是否有效。但是,可以设置dateType和constrainInput,但它们不检查日期是否实际存在,只是语法是否正确。请注意,jquery验证插件有带有日期attribut的麻烦。
发布于 2016-02-02 11:25:58
像这样使用它:
<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
发布于 2017-06-29 11:48:34
只需动态更改日期类型,使用onfocus和onblur,并验证如下所示。
<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。
https://stackoverflow.com/questions/35151965
复制相似问题