JQuery Alert不会停止显示

时间:2016-08-03 23:22:23

标签: jquery

我有这个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 truereturn false,但执行任何操作都会阻止它完全显示。

如何让它只显示一次?

function checkFullDay() {
    if($("#type").val() != "Full") {
        $("#date_to").attr("readonly", true);
        $("#date_to").val( $("#date_from").val() );
    } else {
        $("#date_to").attr("readonly", false);
    }
}

2 个答案:

答案 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>