我正在创建一个包含日期输入字段的表单。我已经成功地将其设置为采用 yyyy-mm-dd 格式,但是,当输入盯着年份的日期时,我的年份将接受六个值,例如 yyyyyy-mm-dd。这会产生两种糟糕的用户体验。
如果用户只想输入他们的日期"2020-01-18",- 那么当他们输入它时,它最终将是"202001-12-01"年份已接受年份和月份值,然后月份值默认为"12",因为输入了日值"18",并且日值最终是当前日期。
- 如果用户输入他们的年份"2020",然后点击 tab 转到月份,它将成功导航到他们输入"12"的日期字段。但是,如果他们/当他们再次按 tab 转到日期时,它会将他们发送到下一个输入字段而不是日期,因为我当前的设置会在输入光标填充到日期字段后将输入光标从月份字段移动到日期字段。
我的日期输入字段代码是:
HTML + PHP
<!-- Date of Birth -->
<label for="dateOfBirth">Date of Birth</label>
<span class="Error">* <?php echo $dateOfBirthErr; ?></span>
<br>
<input type="date" id="dateOfBirth" name="dateOfBirth" value="<?php echo date('Y-m-d'); ?>" />
每个浏览器都会出现相同的问题。谢谢,阿诺尼奥尼,你的帮助!
解决方法是向日期选择器添加max=
值。
<input type="date" id="dateOfBirth" name="dateOfBirth"
value="2019-01-17" max="9999-12-31"/>
上面的此示例将防止在字段中提交任何 5 或 6 位日期,用户将被迫在提交前更正其明显的拼写错误。