#jquery-mobile #datebox
#jquery-mobile #datebox
Вопрос:
Я использую DateBox ( http://dev.jtsage.com/jQM-DateBox / ) плагин для страницы с последней сборкой jQueryMobile, но я нахожу странную ошибку. Когда я открываю свое приложение на index.html и перейдите по страницам на страницу с выбором даты, я получаю это — http://cl.ly/19022K40472e3k0D0D2H
Однако, если я перейду прямо на страницу через адресную строку, она работает нормально и отображается так, как должна.
Так что просто интересно, есть ли у кого-нибудь еще проблемы с этим? Или есть идеи, как это исправить?
Также я мог бы добавить, кто-нибудь знает, как я могу отобразить текущую дату в текстовом поле?
Спасибо.
Ответ №1:
1) Похоже, что это проблема с неправильной загрузкой css datebox.Загружаете ли вы CSS datebox в index.html ?.В этом случае, когда вы напрямую переходите на страницу с помощью datepicker, CSS может не загружаться.Вы можете проверить, загружен ли datebox css, используя firebug для firefox или встроенный инструмент разработчика в Chrome / Safari.(Проверьте вкладку ресурсы, чтобы увидеть все загруженные ресурсы)
2) Проверьте этот пример — http://jsfiddle.net/BNsPB /. В этом примере я написал код в document ready, в вашем случае вам, возможно, придется записать его в pageinit
pagecreate
обработчиках событий or
После проверки вашего фактического кода, я думаю, вам нужно добавить приведенный выше фрагмент кода в обработчик событий pageshow следующим образом: (Предполагая, что bookingPage — это идентификатор страницы)
$("#bookingPage").live( 'pageshow',function(event, ui){
var today = new Date();
var todayStr = today.getFullYear() "-" (today.getMonth() 1) "-" today.getDate();
$('#mydate').trigger('datebox', {'method':'set', 'value':todayStr});
});
});
Комментарии:
1. Да, это было бы так! Я убрал код в заголовке, чтобы немного очистить другие страницы, так как подумал, что это не нужно, если я его не использую. Спасибо!
2. Я отсутствовал, поэтому не смог попробовать этот код snipit для отображения даты, но я только что попробовал, и это вроде работает. Он отображает дату в текстовом поле, но 1. он изменяет формат на неправильный формат гггг — мм — дд, до того, как он был у меня как дд — мм — гггг, а другое дело, когда я открываю календарь, он устанавливается на 1918 год по умолчанию. Убираем этот скрипт, и все возвращается в нормальное русло. Есть идеи, почему он это делает?
3. Все хорошо, я это исправил 🙂 просто изменил эту строку, и она исправила формат даты, а также перестала показывать 1918 год. var todayStr = today.getDate() «-» (today.getMonth() 1) «-» сегодня.getFullYear();
4. Говорил слишком рано .. и, к сожалению, прошло время, я не смог отредактировать последний комментарий. Похоже, что проблема возникла с выбором даты в первую очередь, не отображается при ссылке на страницу. Но я сделал только тот сценарий, который вы сделали, на странице индекса, а также на странице времени бронирования. Вот как выглядит код заголовка — jsfiddle.net/JBYmV
5. вы хотите сказать, что у вас все еще есть проблема?
Ответ №2:
Вам необходимо загрузить файлы в фактический файл, к которому ваш сайт переходит в первую очередь ( index.html
предположительно). Похоже, вы ссылаетесь только на CSS и код плагина на своей странице выбора даты, но в режиме по умолчанию jQM использует навигационную систему на основе хэша ajax, поэтому вам нужно ссылаться на ресурсы таким образом, чтобы они были доступны с самого начала.
Комментарии:
1. Спасибо, Бен! теперь все отсортировано 🙂