【发布时间】:2018-10-25 21:14:54
【问题描述】:
这个问题可能与另一个问题类似:
HTML Comparing 2 Dates with Javascript
但我不想使用button,只需让它即时。
我有 2 个 date 类型的输入,我想在它们之间进行比较。
<div>
<label style="font-family: 'Segoe UI';">Select a date.</label>
<br><br>
<span style="font-family: 'Segoe UI';">Since</span>
<input type="date" name="since" id="since" required="required" style="font-family: 'Segoe UI';"/>
<span style="font-family: 'Segoe UI';">Until</span>
<input type="date" name="until" id="until" required="required" style="font-family: 'Segoe UI';"/>
<br><br>
<button style="font-size: 14px; font-family: 'Segoe UI';" onclick="Validate()">COMPARE THIS</button>
</div>
<script type="text/javascript">
function Validate(){
var date1 = new Date(document.getElementById('since').value);
var date2 = new Date(document.getElementById('until').value);
if(date2 < date1) {
alert('The date cannot be less than the first date that you selected');
return false;
}else{
alert("It's OK");
return true;
}
}
</script>
现在条件完美运行,它比较两个日期并在第二个日期小于第一个日期时显示错误。但这是使用按钮来触发比较。
是否可以在没有按钮触发比较的情况下比较输入日期?并使用HTMLSelectElement.setCustomValidity() 方法?
【问题讨论】:
-
我会向你推荐 moment.js,它非常受欢迎的库
date1.isBefore(date2)返回布尔值 -
怎么会涉及到php?我会删除标签
-
“没有按钮来完成这项工作” - 是的,在调用
validate()的两个输入上设置一个 onKeyDown(或 keyup..)侦听器。但是消息不应该是一个警报,而是一条消息,和/或输入周围的红色边框。 -
@Jeff。可以如果我输入日期,但如果我只选择日期它不会显示消息错误。
-
But I don't want to use a button, simply make it instant.尽快?
标签: javascript html date input