我可以使用HTML输入类型"日期"只收集一年吗?

Gus*_*uss 24 html forms html5 date webshim

我有一个字段需要从用户收集一年(即具有年分辨率的日期 - 为了便于存储,我更愿意存储实际日期值而不是数字).

我想使用现代浏览器或webshims支持的日期输入UI,因为它很好并且可以很好地适应现代平台.我无法弄清楚如何让UI只显示年份.有任何想法吗?

如果没有平台支持,理想情况下我希望有一个类似于你可以在这里看到的UI ,如果你点击"预览",然后点击窗口小部件的顶部几次,反过来:当你第一次点击输入时你得到一个包含几十年列表的小部件,然后你深入选择年份,然后关闭UI.

Bla*_*bam 49

不,你不能,但你可能想要使用输入类型号作为解决方法.请看以下示例:

<input type="number" min="1900" max="2099" step="1" value="2016" />
Run Code Online (Sandbox Code Playgroud)


LGS*_*Son 16

不,你不能,它不支持只有一年,所以要做到这一点,你需要一个脚本,如jQuery或你有的webshim链接,只显示年份.


如果jQuery是一个选项,这里是一个,从Sibu借来的:

$(function() {
    $( "#datepicker" ).datepicker({dateFormat: 'yy'});
});?
Run Code Online (Sandbox Code Playgroud)

Src:https://stackoverflow.com/a/13528855/2827823

Src小提琴:http://jsfiddle.net/vW8zc/

这是一个更新的小提琴,没有月份和上一个/下一个按钮


如果bootstrap是一个选项,请检查此链接,它们具有您想要的布局.


小智 8

HTML5中输入类型月份,允许选择月份和年份.月选择器适用于自动完成.

检查JSFiddle中的示例.

<!DOCTYPE html>
<html>
<body>
    <header>
        <h1>Select a month below</h1>
    </header>
    Month example
    <input type="month" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • Firefox 和 Safari 不支持 input type='month':https://www.w3schools.com/tags/att_input_type_month.asp (5认同)

Dav*_*tey 6

您可以执行以下操作:

  1. 生成一个我将接受的年份数组,
  2. 使用选择框。
  3. 将 Array 中的每个项目用作“选项”标签。

使用 PHP 的示例(您可以使用您选择的任何语言执行此操作):

服务器:

<?php $years = range(1900, strftime("%Y", time())); ?>
Run Code Online (Sandbox Code Playgroud)

HTML

<select>
  <option>Select Year</option>
  <?php foreach($years as $year) : ?>
    <option value="<?php echo $year; ?>"><?php echo $year; ?></option>
  <?php endforeach; ?>
</select>
Run Code Online (Sandbox Code Playgroud)

作为一个额外的好处,这个作品具有 100% 的浏览器兼容性;-)