在某些情况下,我只想重置日期输入基准。
请参见下面的示例,如果用户键入的日期大于2022-12-31
,我想重设年份。
当我尝试重置整个日期,但我只想重置年份而不是整个日期。
示例:如果用户键入01/01/2023
,则应将其重置为01/01/yyyy
。
$('#date-input').change(function(e) {
let input = $(this);
if (input.prop('max') < input.val()) {
var value = input.val().substring(5, 10);
console.log(value);
input.val(value);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<input type="date" id="date-input" placeholder="MM / DD / YY" max="2022-12-31"></span>
答案 0 :(得分:3)
恐怕是不可能的。设置输入日期时,该日期必须是有效日期。
最好的办法是将其设置为日期,然后显示一条消息以警告用户他们 输入的日期晚于最大日期。您可以将其设置为当前年份,或者如果不想让人们错误地继续使用当前年份(例如,即使是“ 0001”也可以)则没有意义的年份,但是您不能仅将年份清除为{{1} }。
在下面的示例中,如果日期晚于最大日期:
yyyy
$('#date-input').change(function(e) {
let input = $(this);
$('.date-error').text("");
if (input.prop('max') < input.val()) {
var inputyear = input.val().substring(0, 4);
$('.date-error').text(inputyear+ " is not a valid year. Please enter a date before 31/12/2022");
var value = input.val().substring(5, 10);
CurrYear = new Date().getFullYear();
value = CurrYear+"-"+value;
input.val(value);
input.focus();
}
});