3

输入类型日期有一个疯狂的事情。
这是我的html:

function getValue() {
  $('#entered').text($('input[name=test_date]').val());  
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="date" min="2018-01-01" max="2018-05-05" name="test_date">
<button onclick="getValue()">Get value</button>
<p>Entered: <span id="entered"></span></p>

如果我输入无效值,它将自动更改为有效值。
但并非总是如此。最大日期始终为 31。

例如:
输入:“01/55/2018”=>“01/31/2018”--正确
输入:“02/55/2018”=>“02/31/2018”--错误

如果为 False,jquery 或 php 都无法获取该值。
它总是返回“”。


即使它无效,我也想获得价值。
你有什么建议吗?

==================
问题已解决

根据http://crbug.com/231811,原因很简单。

如果您想在用户输入无效日期时显示错误消息。
您可以使用 input.validity.badInput 或 validationMessage 进行验证

在此处输入图像描述

4

1 回答 1

4

来自文档HTML Living Standard

value 属性(如果指定且不为空)必须具有一个有效日期字符串的值。

值清理算法如下:如果元素的值不是有效的日期字符串,则将其设置为空字符串。

于 2018-05-11T06:38:34.783 回答