我有这个jquery代码
$("#type, #date_from, #date_to").change(function(){
checkFullDay();
if($("#date_to").val() == "") {
$("#date_to").val( $("#date_from").val() );
}
if($("#date_to").val() < $("#date_from").val()) {
alert("Dates are invalid");
}
});
当警报显示时,它不会停止。
我尝试将其更改为return alert("Dates are invalid");
我还尝试在提醒之后添加return true
和return false
,但执行任何操作都会阻止它完全显示。
如何让它只显示一次?
function checkFullDay() {
if($("#type").val() != "Full") {
$("#date_to").attr("readonly", true);
$("#date_to").val( $("#date_from").val() );
} else {
$("#date_to").attr("readonly", false);
}
}
答案 0 :(得分:1)
它将继续执行,因为您没有写入仅检查一次的条件。添加简单标志可以解决您的问题。首次更改标志的值,然后在条件中添加它在您的代码中可能是这样的
<script>
var flag=0;
$("#type, #date_from, #date_to").change(function(){
checkFullDay();
if($("#date_to").val() == "") {
$("#date_to").val( $("#date_from").val() );
}
if($("#date_to").val() < $("#date_from").val() && flag!=1) {
flag=1;
alert("Dates are invalid");
}
});
</script>
答案 1 :(得分:0)
我认为您只需要在$(document).ready(function(e){})中添加代码。以下对我有用。我希望这是你想要实现的目标。
</head>
<body>
<script>
$(document).ready(function(e){
$("#type, #date_from, #date_to").change(function(){
if($("#date_to").val() == "") {
$("#date_to").val( $("#date_from").val() );
}
if($("#date_to").val() < $("#date_from").val()) {
alert("Dates are invalid");
}
});
});
</script>
<div>
From:<input type="date" id="date_from" />
To:<input type="date" id="date_to" />
</div>
</body>
<html>