Javascript 如何验证HTML5日期格式
我想使用HTML5日期输入字段Javascript 如何验证HTML5日期格式,javascript,php,jquery,html,date,Javascript,Php,Jquery,Html,Date,我想使用HTML5日期输入字段 <input type='date' name='customDate'> 以便其他用户可以从浏览器中使用内置日期选择器 我想检查输入是否为日期格式。正如我在这里发现的:没有独特的演示格式。例如,在Chrome中,日期字段的输入形式为dd.mm.yyyy,而在Firefox 24或IE 9/10中,输入字段中的日期显示为yyy-mm-dd 我的第一个问题是,您如何告诉用户您希望他以何种格式键入日期?在Firefox中,我需要 <label&
<input type='date' name='customDate'>
以便其他用户可以从浏览器中使用内置日期选择器
我想检查输入是否为日期格式。正如我在这里发现的:没有独特的演示格式。例如,在Chrome中,日期字段的输入形式为dd.mm.yyyy,而在Firefox 24或IE 9/10中,输入字段中的日期显示为yyy-mm-dd
我的第一个问题是,您如何告诉用户您希望他以何种格式键入日期?在Firefox中,我需要
<label>Enter Date(YYYY-MM-DD)</label><input type='date'
name='customDate' placeholder='YYYY-MM-DD'>
输入日期(YYYY-MM-DD)
但这对于Chrome来说是错误的
其次,我如何在提交前检查当前输入是否为(浏览器的)有效日期格式?
我知道如果日期格式为YYYY-MM-DD,我可以在提交后使用PHP进行检查,但是在提交之前如何使用JavaScript进行检查?最好的方法是使用日历/日期选择器(即:jquery ui) 您可以指定所需的格式,并且对用户友好 像这样使用它:
<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))" >
输入日期(YYYY-MM-DD)
对于所有其他HTML5日期模式,请访问:
我认为验证HTML5日期格式的最佳方法是将作业留给日期选择器(如果有) 例如,chrome或ios5的本机日期选择器不允许错误的用户日期输入。在chrome中,它甚至会检查日期是否存在于人类日历中 如果浏览器没有本机datepicker(如firefox),则应使用Modernizer进行检测,并使用。这是一篇很好的文章,解释了如何做到这一点。 不幸的是,jQuery日期选择器没有检查输入是否有效。
但是,可以设置dateType和ConstraintInput,但它们不会检查日期是否确实存在,只是检查语法是否正确。请注意,jquery验证插件具有日期属性。只需使用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()=""
$(“#开始日期”).val()
最后,您的日期值将为yyyy-mm-dd如果您想添加预设值,只需使用
value=“yyyy-mm-dd”
格式。遗憾的是,这不会每次都起作用,不是使用type=“date”,而是使用type=“text”tho