如何比较两个全年日期

我的示例中的想法是允许用户仅选择to输入中已选择的from输入中的年份(具有相同的年份和日期输入)。


这里的问题是,当我们使用日期选择器时它工作正常,但是,当我们手动将日期输入到“to”输入中时,它会比较年份的第一个数字***8/04/14,我想等到用户完成完整的日期示例2018/04/14然后我提醒OK。我实际的代码,如果我拿这个例子:from = 2018/04/14,to = 2018/05/29,所以比较2018/04/14有from = 8/05/29在,它警示OK 8的2018和不完整的一年。


$("#from").on("change", function() {

    year();

    var from = $("#from").val();

    if (from) {

      var maxYear = new Date(from).getFullYear();

      $("#to").attr("max", maxYear+"-12-31");

      $("#to").attr("min", maxYear+"-01-01");

    }

});


$("#to").on("change", function(){

    year();

});


function year() {

    var from = $("#from").val();

    var to = $("#to").val();

    if(from && to && new Date(from).getFullYear() != new Date(to).getFullYear()) {

        $("#to").val("");

        alert("OK");

    }

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="from">from</div>

<input id="from" type="date">

<div class="to">to</div>

<input id="to" type="date">


慕的地10843
浏览 162回答 2
2回答

万千封印

尝试使用$("#to").on("blur", function(){&nbsp; &nbsp;year();});只有在输入失去焦点后才应该激活检查。

FFIVE

Change&nbsp;事件在输入更改时触发,如果您想捕获用户事件或键事件,您应该尝试将所有“更改代码”声明为独立函数并添加另一个事件侦听器。也许可以blur或key down将按照您的意愿工作,但存在很多事件:https&nbsp;:&nbsp;//www.w3schools.com/jsref/dom_obj_event.asp
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript