2013-02-20 4 views
2

Я использую специальный jqery datepicker vidget (http://keith-wood.name/datepick.html). Причина в поддержке конкретных календарей (тайский). Применяя новый datepicker к существующей логике, я столкнулся с проблемой. Сборщик не открывается (всплывающее окно не отображается) в браузерах Chrome и Safari, в то время как он отлично работает в IE8 и Firefox. После некоторого расследования я пришел к выводу, что причиной этого является тег html темы привязки. Он написан в ссылке на плагин, к которому он должен быть прикреплен, и теги. И я прикрепляю его к тегам. вот код:jQuery плагин datepicker не работает в Chrome и Safari

<script type="text/javascript" src="../jquery.calendars.js?v=$version"></script> 
<script type="text/javascript" src="../jquery.calendars.plus.js?v=$version"></script> 
<script type="text/javascript" src="../jquery.calendars.picker.js?v=$version"></script> 
<script type="text/javascript" src="../jquery.calendars.thai.js?v=$version"></script> 

jQuery(function() { 
      jQuery('#deactivation_date').calendarsPicker({ 
       changeMonth: false, 
       showOtherMonths: true, 
       selectOtherMonths: true, 
       showAnim: '', 
       dateFormat: _dateFormat, 
       calendar: jQuery.calendars.instance(_userLanguageCode == 'th' ? 'thai' : '', 'en'), 
       alignment: 'bottom', 
       renderer: jQuery.extend({}, jQuery.calendars.picker.defaultRenderer, 
        { 
         picker: jQuery.calendars.picker.defaultRenderer.picker. 
         replace(/\{link:prev\}/, '{link:prevJump}{link:prev}'). 
         replace(/\{link:next\}/, '{link:nextJump}{link:next}'). 
         replace(/\{link:clear\}/, ''). 
         replace(/\{link:close\}/, '') 
        }), 
       onSelect: function(dates){ 

         } 
        } 
      }); 
     }); 

...

<a href="javascript:void(0)" class="date-pick no-left-padding" id = "deactivation_date"> 
    "DateText" </a> 

Дальнейшее исследование заставило меня думать, что в Chrome соответствующий обработчик события не подключен правильно, потому что отладчик даже не шаг в «шоу ". Это вероятная часть виджета, который терпит неудачу в Chrome и Safari:

var trigger = inst.get('showTrigger'); 
inst.trigger = (!trigger ? $([]) : 
     $(trigger).clone().addClass(this._triggerClass) 
     [inst.get('isRTL') ? 'insertBefore' : 'insertAfter'](target). 
      click(function() { 
      if (!$.calendars.picker.isDisabled(target[0])) { 
       $.calendars.picker[$.calendars.picker.curInst == inst ? 
        'hide' : 'show'](target[0]); 
      } 
     })); 

Существует вариант, чтобы присоединить все datepickers к различным тегам, но DIV/охватывают встроенный рендеринг будет выполняться, и вход Безразлично» t выглядит как текст вообще.

Пожалуйста, поделитесь своими идеями, если таковые имеются ...

Заранее спасибо

JQuery DatePicker кажется не поддерживать, не григорианский календари на данный момент: http://bugs.jqueryui.com/ticket/5789 Не так ли?

ответ

0

Возможно, это не полностью ответ на ваш вопрос, а подсказка для решения вашей проблемы.

Почему бы не использовать стандартный календарь JQuery UI с файлами глобализации, вы можете найти here?

+0

После некоторого расследования я все еще сомневаюсь, что он поддерживает местные календари. Но я только что наткнулся на этот пост: http://stackoverflow.com/questions/3297652/jquery-datepicker-displaying-a-buddhist-date. Поэтому я попробую. Спасибо, Mauro – godspeed

+0

Дорогая богиня Я не большой эксперт тайских календарей! Это просто смещение в год? – Mauro

+0

Да, это так. Смещение составляет 543 года. Там также есть какая-то магия с високосными годами, но я только что протестировал плагин keith-wood, и, похоже, это не мешает показ 29 февраля. – godspeed

Смежные вопросы