限制出生日期'表格字段数字输入

时间:2015-08-10 19:00:15

标签: jquery html5 css3

我想限制我的习惯'出生日期'形式领域。仅接受实际日期 - 日= 1 - 31月= 1-12 。我尝试过使用max属性,但它不起作用。 (不确定是否因为我也使用了maxlength?)

<div id="date2" class="datefield">
    <input id="day" name="BirthDate" type="BirthDate" maxlength="2" placeholder="DD" style="width:10%;" max="31" required /> /
    <input id="month" name="BirthDate" type="BirthDate" maxlength="2" placeholder="MM" style="width:10%;" max="12" required /> /
    <input id="year" name="BirthDate" type="BirthDate" maxlength="4" placeholder="YYYY" style="width:18%;" required />
</div>

有什么建议吗?

对不起!我不能用下拉菜单!由于API。

另外,我不能简单地使用type="date"(我希望)因为它在自定义设计/样式上显示效果不佳。

3 个答案:

答案 0 :(得分:3)

只需将输入类型更改为&#34; number&#34;并设置最小值和最大值。请参阅此fiddle

<div id="date2" class="datefield">
    <input id="day" name="BirthDate" type="number" placeholder="DD" style="width:10%;" min="1" max="31" required /> /
    <input id="month" name="BirthDate" type="number" placeholder="MM" style="width:10%;" min="1" max="12" required /> /
    <input id="year" name="BirthDate" type="number" maxlength="4" placeholder="YYYY" style="width:18%;" required />
</div>

答案 1 :(得分:0)

实际上,更好的做法是使用日期/月/年的下拉菜单而不是自由形式的输入字段 - 它还可以避免在提交表单时验证输入。您也不会丢失任何功能,因为下拉列表也接受数字输入(如果用户在此字段中单击或选项卡并使用数字键输入日期/月份,列表将简单地跳转到下拉列表中的输入位置 - 与普通输入字段没有区别)

当然,如果您坚持使用自由格式输入字段,则可以使用输入类型编号<input type="number" name="quantity" min="1" max="5">,或者您可以使用为此目的而创建的许多可用JavaScript插件之一。只需谷歌搜索'datepicker插件'。

还有字段类型<input type="date" />,但在旧版浏览器和某些移动浏览器中不支持。

答案 2 :(得分:0)

由于您使用&#34; HTML5&#34;标记了您的问题,我建议您使用<input type="date" name="bday">,如下所述:http://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_date