web-dev-qa-db-ja.com

JQuery UIの日付ピッカーオプションコードの何が問題になっていますか?

私はAJAXビュー3とより良い公開フィルターを使用したビューを持っています(したがってjQuery UI datepicker)。公開フィルターの1つは[post-date](コア)間の日付です。

フォームは正常に機能しますが、日付を入力して(AJAX経由で)送信すると、入力フィールドに表示されているエントリが表示されなくなります。

前:

before submit

後:

after sumbit

他のテキストフィールドでは発生せず、日付フィールドだけで発生します。公開フォームタイプを「基本」に変更すると発生しなくなります。私はそれが問題を引き起こしているBEFであることを確信していますが、実際に不可解なのは、入力値が送信後のHTMLにそこにあるということです:

<input ... value="2015-05-01" ...>

入力フィールドに表示されないのはなぜですか?

[編集:]空白のサイトでこれを再現しようとしましたが、できませんでした。根本的な原因がBEFにあることはもはやわかりません。


追加情報:

Datepickerポストレンダーにオプションを追加するために、カスタムJQueryコードまで問題を追跡しました。オプションが追加されても心配ありません。なぜ入力が壊れるのか理解できません。

(function ($) {
Drupal.behaviors.myPageFilters = {
  attach: function (context, settings) {

    $("label[for='edit-post-date-max']", context).once('changeBetweenText', function(){
        $(this).text("to");
    });


    // This is the culprit, commenting out this block stops the weird behaviour
    $(".bef-datepicker", context).once('changeDatePickerFormat', function(){
        $(this).datepicker("option", "changeYear", true).datepicker("option", "changeMonth", true);
        $(this).datepicker("option", "dateFormat", "yy-mm-dd").datepicker("option", "showButtonPanel", true);
        $(this).datepicker("option", "buttonImage", "/sites/all/themes/mytheme/images/exposed-filter-calendar.png").datepicker("option", "showOn", "both");
    });



    $(".bef-secondary-options", context).once('createSecondarySubmit', function(){
        $(this).append('<input type="submit" id="bef-secondary-submit" value="Apply" class="form-submit">');
    });

  }
};   
}(jQuery));

これです:

$(this).datepicker("option", "dateFormat", "yy-mm-dd");

日付の形式をBEFコードで提供されるUS形式(AUSサイト)から変更するためにそこに配置しました。

jQuery UI Datepicker optionフィールドをBEFで発見しました。/facepalm

誰かが同じ問題に終わった場合に備えて、この質問はここに残しておきます。

2
Darvanen

カスタムjQueryではなく、ビューUIを介して日付ピッカーオプションを配置します。

0
Darvanen