HTML输入日期:不允许用户使用键盘输入将来的日期

时间:2019-11-14 19:56:02

标签: javascript jquery html

我可以使用下面的箭头或键盘箭头轻松地阻止用户编写将来的日期,我也想防止他在输入字段中编写将来的日期。

我不想完全禁用键盘输入,因为它很有用

    document.getElementById("date_end").addEventListener("change", event => {
        if (event.target.value > event.target.max) {
            event.target.value = event.target.max;
        }
    });
<input type='date' name='date_end' id='date_end' max="2023-01-03" value="2020-01-01">

1 个答案:

答案 0 :(得分:-1)

上面的代码片段有效,但是我最终使用了下面的代码片段,不确定为什么,使用上面的代码更好。

	const dateToDate = date => {
		let params = date.split('-');
		params[1]--; // months are zero indexed
		return new Date(...params);
	};

	let end_date_input = document.getElementById('date_end');
	end_date_input.addEventListener('input', function(){
		if(dateToDate(this.value) > dateToDate(this.max)){
			this.value = this.max;
		}
	});
    <input type='date' name='date_end' id='date_end' max="2023-01-03" value="2020-01-01">