2

特定の jquery datepicker vidget ( http://keith-wood.name/datepick.html ) を使用しています。特定のカレンダー (タイ語) のサポートがその理由です。新しい日付ピッカーを既存のロジックに適用すると、問題に直面しました。Chrome および Safari ブラウザーではピッカーが開きません (ポップアップは表示されません) が、IE8 および Firefox では正常に動作します。調査の結果、添付ファイルの件名のhtmlタグが理由であることがわかりました。、 、タグに付いているはずのプラグインへのリファレンスに書いてあります。そして、タグに付けています。コードは次のとおりです。

<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 では適切なイベント ハンドラーが正しくアタッチされていないことがわかりました。これは、デバッガーが "show" 関数にステップ インすることさえないためです。これは、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]);
            }
        }));

すべての日付ピッカーを別のタグに再アタッチするバリアントがありますが、div/span の場合はインライン レンダリングが実行され、入力はテキストのようには見えません。

アイデアがあれば教えてください...

前もって感謝します

jQuery datepickerは現在、非グレゴリオ暦をサポートしていないようです: http://bugs.jqueryui.com/ticket/5789 そうじゃないですか?

4

1 に答える 1

0

おそらくあなたの質問に対する完全な答えではなく、あなたの問題を解決するためのヒントです。

ここにあるグローバリゼーションファイルで標準のJQueryUIカレンダーを使用してみませんか?

于 2013-02-20T09:08:56.020 に答える