JQuery UI DatePicker IE перезагрузить или перейти к началу страницы - PullRequest
6 голосов
/ 03 февраля 2010

Я замечаю эту проблему в IE 7 + 8

$('#event-start-date').datepicker({dateFormat:'DD MM dd yy',minDate:'-0d'});

Когда вы выбираете дату в IE 7 или 8, страница переходит на # и перезагружает корневую страницу

Я использую jquery 1.4.0 и пользовательский интерфейс 1.7.2

Ответы [ 2 ]

17 голосов
/ 16 июля 2010

У меня возникла та же проблема с jquery 1.4.2 при использовании IE7. Это происходит со мной только при использовании модального диалогового окна. Datepicker появляется на странице очень хорошо, но выбор даты приводит к тому, что вы будете перенаправлены на # фрагмент.

Я нашел исправление, которое работает, если не желательно здесь: http://forum.jquery.com/topic/modal-dialog-with-datepicker

По сути, вы просто отрываете ключ от поля при выборе:

.datepicker({ onSelect: function() { $(".ui-datepicker a").removeAttr("href"); } });

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

$("#your_text_box_id").removeClass('hasDatepicker').datepicker({ onSelect: function() { $(".ui-datepicker a").removeAttr("href"); } });

Мне потребовалось некоторое время, чтобы найти это из-за множества других проблем с jquery datepickers и IE, иди к рисунку.

1 голос
/ 24 февраля 2011

У меня такая же проблема с FF 3.6.13, Jquery 1.5.0, доставленным из jquery CDN и jqueryui 1.8.9.

Как ни странно, это происходит только на НЕКОТОРЫХ компьютерах с той же версией firefox, с очищенными кешами.

Это исправление сработало для меня. т.е.

$(".datepicker").datepicker({
  dateFormat: "yy-mm-dd",
  changeMonth: true,
  changeYear: true,
  numberOfMonths: 2,
  showButtonPanel: true,
  onSelect: function() {
    $(".ui-datepicker a").removeAttr("href");
  }
});

Единственная проблема - теперь он игнорирует событие .change. Я исправил это, добавив $(this).change():

$(".datepicker").datepicker({
  dateFormat: "yy-mm-dd",
  changeMonth: true,
  changeYear: true,
  numberOfMonths: 2,
  showButtonPanel: true,
  onSelect: function() {
    $(".ui-datepicker a").removeAttr("href");
    $(this).change();
  }
});

$(".date_unix").datepicker({
  dateFormat: "@",
  changeMonth: true,
  changeYear: true,
  numberOfMonths: 2,
  showButtonPanel: true,
  onSelect: function() {
    $(".ui-datepicker a").removeAttr("href");
    $(this).change();
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...