Javascript / JQuery загружает текущую дату при первой загрузке, но сохраняет дату после изменения страниц

Я использую Datepicker Bootstrap, и я хочу загрузить текущую страницу, когда пользователь впервые посещает страницу, но после того, как они выберут другую дату и перейдут на другую страницу, я хочу продолжить использовать эту новую выбранную дату. Я нормально использую для этого локальную память. Ниже то, что у меня есть, но это не работает. Он будет сохранять дату, когда я меняю страницы, но не загружает текущую дату при первой загрузке.

Как мне это сделать? Спасибо!

 $(document).ready(function () {
            var today = new Date();
            var dd = today.getDate();
            var mm = today.getMonth() + 1; //January is 0!
            var yyyy = today.getFullYear();
            if (dd < 10) {
                dd = '0' + dd;
            }

            if (mm < 10) {
                mm = '0' + mm;
            }
            var today = mm + '-' + dd + '-' + yyyy;
            document.getElementById("datepicker").value = localStorage.getItem("selected_date")
            $('#myTable').DataTable({
                fixedHeader: true,
                pageLength: 50
            });
            $('#datepicker').datepicker({
                format: 'mm-dd-yyyy'
            });
            $('#datepicker').on('changeDate', function (event) {
                selected_date = event.format();
                localStorage.setItem("selected_date", selected_date)
            });
            });
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id = "datepicker" width = "276" value=today>

Какие результаты вы получаете? Ваша логика кажется правильной.

Scott Marcus 22.08.2018 19:23

Когда я впервые загружаю страницу, поле ввода даты пусто. Как только я выбираю новую дату, она работает и сохраняется в localStorage, и работает нормально, но не загружает текущую дату, когда я по какой-то причине впервые загружаю страницу.

Emac 22.08.2018 19:27

Смотрите мой ответ ниже.

Scott Marcus 22.08.2018 19:32

Какой язык на стороне сервера вы используете и используете ли вы файлы cookie?

Daniel Gale 22.08.2018 19:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
4
788
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно условно установить значение datepicker при загрузке страницы вместо того, чтобы всегда пытаться получить значение localStorage, потому что при загрузке первой страницы не будет никакого значения localStorage:

let dp = document.getElementById("datepicker");
let savedDate = localStorage.getItem("selected_date");
if (savedDate) {
  dp.value = savedDate;
} else {
  // Set default value of datepicker here
  dp.datetimepicker({
    date: new Date();
  });
}

Другие вопросы по теме