gpt4 book ai didi

javascript - 比较用户输入的日期值 "instantly"

转载 作者:行者123 更新时间:2023-11-30 09:19:04 29 4
gpt4 key购买 nike

这个问题可能与另一个问题类似:

HTML Comparing 2 Dates with Javascript

但我不想使用按钮,只需让它即时即可。

我有 2 个类型为 date 的输入,我想比较它们。

<div>
<label style="font-family: 'Segoe UI';">Select a date.</label>
<br><br>
<span style="font-family: 'Segoe UI';">Since</span>&nbsp;
<input type="date" name="since" id="since" required="required" style="font-family: 'Segoe UI';"/>&nbsp;&nbsp;

<span style="font-family: 'Segoe UI';">Until</span>&nbsp;
<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>

现在条件完美运行,它比较 2 个日期并在第二个日期小于第一个日期时显示错误。但这是使用按钮来触发比较。

是否可以在没有按钮触发比较的情况下比较输入日期?并使用 HTMLSelectElement.setCustomValidity() 方法?

最佳答案

我认为您可以使用 onchange 事件来执行此操作。我稍微修改了您的代码段,并在不验证时设置了一个简单的条件。您可以将其调整为更复杂。

<div>
<label style="font-family: 'Segoe UI';">Select a date.</label>
<br><br>
<span style="font-family: 'Segoe UI';">Since</span>&nbsp;
<input onchange="Validate()" type="date" name="since" id="since" required="required" style="font-family: 'Segoe UI';"/>&nbsp;&nbsp;

<span style="font-family: 'Segoe UI';">Until</span>&nbsp;
<input onchange="Validate()" type="date" name="until" id="until" required="required" style="font-family: 'Segoe UI';"/>
</div>

<script type="text/javascript">
function Validate(){
var input1 = document.getElementById('since').value;
var input2 = document.getElementById('until').value;
if(input1 != "" && input2 != ""){
var date1 = new Date(input1);
var date2 = new Date(input2);

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>

关于javascript - 比较用户输入的日期值 "instantly",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52998216/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com