Модальное всплывающее окно Datepicker не работает должным образом - jQuery - PullRequest
0 голосов
/ 02 ноября 2019

Модальное всплывающее окно Jquery datepicker не работает должным образом !!

Если я выбираю текущую дату из даты, превышающей дату, я хочу показать всплывающее окно, как «Это дата в будущем», и если я выберу меньше текущей даты, я хочудля отображения всплывающего окна типа «Это прошедшая дата», и даже если я выбрал текущую дату, я хочу показать всплывающую строку «Это сегодняшняя дата»

Пример: если я нажму <текущая дата</strong> (Показать всплывающее окно Это более поздняя дата ), > текущая дата (Показать всплывающее окно Это будущая дата ), равно текущей дате (Показать всплывающее окно Это сегодняшняя дата ).

Я использую эту функцию, но она не работает должным образом.

Надеюсь, мой вопрос понятен. .

Вот моя скрипка ..

FIDDLE ЗДЕСЬ ..

Вот мой фрагмент ..

$(document).ready(function(e) {
  $("#datepicker").datepicker().on("change", function(e) {
    var today = new Date();
    var date = (today.getMonth() + 1) + "/" + (today.getDate()) + "/" + (today.getFullYear());
    $('#myModal').modal('show');
    if ($(this).val() == date) {
      $(".modal-body p").html("You have selected today");
    } else if ($(this).val() < date) {
      $(".modal-body p").html("You have selected past date");
    } else {
      $(".modal-body p").html("You have selected future date");
    }
  });
});
<!Doctype>
<html>

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/datepicker/0.6.5/datepicker.css" integrity="sha256-n3ci71vDbbK59GUg1tuo+c3KO7+pnBOzt7BDmOe87s4=" crossorigin="anonymous" />
  <script src="https://cdnjs.cloudflare.com/ajax/libs/datepicker/0.6.5/datepicker.js" integrity="sha256-KgOC04qt96w+EFba7KuNt9sT+ahJua25I0I2rrkZHFo=" crossorigin="anonymous"></script>
</head>

<body>
  <div class="container">
    <input type="text" id="datepicker">
    <div id="myModal" class="modal fade" role="dialog">
      <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Modal Header</h4>
          </div>
          <div class="modal-body">
            <p>Some text in the modal.</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
          </div>
        </div>

      </div>
    </div>
  </div>

</body>

</html>

Спасибо ..

Ответы [ 2 ]

0 голосов
/ 02 ноября 2019

Переменная дата не была правильно инициализирована. Вы должны добавить 0 дополнения к today.getDate (), если число однозначное.

заменить инициализацию переменной даты на строку ниже.

var date = (today.getMonth() + 1) + "/" + (("0" + today.getDate()).slice(-2)) + "/" + (today.getFullYear());
0 голосов
/ 02 ноября 2019

Вы можете использовать Date.parse (), который является встроенной функцией js для сравнения разных дат, потому что это преобразует данную дату в миллисекундах, что поможет вам сравнить дату.

$(document).ready(function(e) {
  $("#datepicker").datepicker().on("change", function(e) {
    var today = new Date();
    var date = (today.getMonth() + 1) + "/" + (today.getDate()) + "/" + (today.getFullYear());
   date = Date.parse(date);
   var selected_date = Date.parse($(this).val());
    $('#myModal').modal('show');
    if (selected_date  == date) {
      $(".modal-body p").html("You have selected today");
    } else if (selected_date < date) {
      $(".modal-body p").html("You have selected past date");
    } else {
      $(".modal-body p").html("You have selected future date");
    }
  });
});
<!Doctype>
<html>

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/datepicker/0.6.5/datepicker.css" integrity="sha256-n3ci71vDbbK59GUg1tuo+c3KO7+pnBOzt7BDmOe87s4=" crossorigin="anonymous" />
  <script src="https://cdnjs.cloudflare.com/ajax/libs/datepicker/0.6.5/datepicker.js" integrity="sha256-KgOC04qt96w+EFba7KuNt9sT+ahJua25I0I2rrkZHFo=" crossorigin="anonymous"></script>
</head>

<body>
  <div class="container">
    <input type="text" id="datepicker">
    <div id="myModal" class="modal fade" role="dialog">
      <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Modal Header</h4>
          </div>
          <div class="modal-body">
            <p>Some text in the modal.</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
          </div>
        </div>

      </div>
    </div>
  </div>

</body>

</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...