0

私は完全にDatepickerで立ち往生しています。Datepickerがアクティブな場合、ぼかしはカレンダーを非表示にしますが、フォーカスは入力のままなので、もう一度クリックして入力しても、Datepickerを再度トリガーすることはできません。ページ上の2つの日付ピッカーだけが正常に機能し、他のすべてはこのように壊れています。

これが私が日付ピッカーを設定する方法です。最初のペアは正常に機能し、2番目のペアは壊れています。

dates.intervalDatepickersSet( $( ".head-from, .head-to" ) );
dates.intervalDatepickersSet( $( ".residence-from, .residence-to" ) );

これはdates.intervalDatepickersSetです:

intervalDatepickersSet: function( el ) {
    var interval, i,
    pair = [];

    if ( el.length > 2 ) {
        var elementsContainer = el.toArray();
        for ( i in elementsContainer ) {
            if ( elementsContainer.hasOwnProperty( i ) ) {
                pair[0] = elementsContainer.shift();
                pair[1] = elementsContainer.shift();
                // If we are on the Update order page, we could have few elements with same classes.
                // Set datpickers for each pair of that incoming bundle of   elements.
                dates.intervalDatepickersSet( $( pair ) );
            }
        }
    }

    interval = el.datepicker({
        onSelect: function( selectedDate ) {
            var prefix = dates.prefixFromTo( $( this ) ),
            option = ($(this).hasClass(prefix + '-from')) ? "minDate" : "maxDate",
            instance = $( this ).data( "datepicker" ),
            date = $.datepicker.parseDate(
                instance.settings.dateFormat || $.datepicker._defaults.dateFormat,
                selectedDate, instance.settings);
            interval.not( this ).datepicker( "option", option, date );
            /* calculations code */
    });
}

これの何が問題になっていますか?

UPD 最初に機能する要素のペア:

<input id="id03" class="disable text from head-from" default="__.__._____" type="text" name="Order[z_start_date]" id="z_start_date" value="<?php if($this->getAction()->getId()=="create") echo '__.__._____'; else echo Yii::app()->dateFormatter->format('dd.MM.yyyy', $model->z_start_date);?>" />
<input id="id04" class="disable text to head-to" default="__.__._____" type="text" name="Order[z_end_date]" id="z_end_date" value="<?php if($this->getAction()->getId()=="create") echo '__.__._____'; else echo Yii::app()->dateFormatter->format('dd.MM.yyyy', $model->z_end_date);?>" />

2番目の壊れたペア:

<input class="text dateOfSettlement1 residence-from" type="text" name="<?php echo $model->getAttrName($block, 'in'); ?>" value="Дата начала" default="Дата начала" />
<input class="text dateOfEviction1 residence-to" type="text" name="<?php echo $model->getAttrName($block, 'out'); ?>" value="Окончание" default="Окончание" />

UPD2

別の入力をクリックするか、要素をドラッグした場合にのみ、日付ピッカーを再度トリガーできます(別のアクションをトリガーします)。その行動の理由は何でしょうか?

したがって、「focusout」イベントの後でのみdatepickerを再度トリガーできますが、「blur」の後でトリガーすることはできません。ただし、カレンダーはぼかしに隠れています。

4

1 に答える 1

0

日付ピッカーshowOnオプションをチェックアウトします。ドキュメント

おそらく「両方」に設定する必要があります。デフォルトでは「フォーカス」に設定されており、入力要素にまだフォーカスがある場合は再度トリガーされません。

于 2012-09-08T16:35:06.767 に答える