jQuery.val()仅在使用datepicker的第二个事件上返回值

时间:2019-03-05 02:10:54

标签: javascript jquery jquery-ui

我正在使用jQuery UI的datepicker处理(旧)项目。我需要确认在元素中输入的日期距离当前日期至少24小时。我正在模糊抓取datepicker元素的值来验证它。问题在于,尝试获取已应用日期选择器的输入的值的行为不一致。 .val()仅在第二个模糊事件上返回一个值,然后返回该事件之前的模糊事件的值。使我抓狂。

标记:

<form action="" method="GET" novalidate="novalidate" class="form">
    <fieldset>
        <legend>Entry Date/Time</legend>

        <label for="ad" class="screen-reader-text">Entry Date</label>
        <span class="fa fa-calendar"></span>
        <input type="text" id="entry-date" name="ad" placeholder="March 4, 2019" autocomplete="off">
    </fieldset>

    <div class="submit-wrapper">
        <input type="submit" class="parking-submit" value="Submit">
    </div><!--ends submit-wrapper-->
</form>

JS:

  jQuery(document).ready(function($){
    $('.form input[type=text]').datepicker({
        minDate: -0,
        nextText: '>>',
        prevText: '<<',
        dateFormat: 'M dd, yy'
    });

  $('#entry-date').blur(function(){
       var now = new Date();
       console.log(now);
       var tomorrow = new Date(now.getTime() + 86400000); //1 day in ms
       console.log(tomorrow);
       var dateGiven = $('#entry-date').val();
       console.log('Set value is' + dateGiven);
  });
});

a pen在显示问题。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用模糊代替模糊。

   $('#entry-date').change(function(){
       var now = new Date();
       console.log(now);
       var tomorrow = new Date(now.getTime() + 86400000); //1 day in ms
       console.log(tomorrow);
       var dateGiven = $('#entry-date').val();
       console.log('Set value is' + dateGiven);
  });