私はAJAXビュー3とより良い公開フィルターを使用したビューを持っています(したがってjQuery UI datepicker)。公開フィルターの1つは[post-date](コア)間の日付です。
フォームは正常に機能しますが、日付を入力して(AJAX経由で)送信すると、入力フィールドに表示されているエントリが表示されなくなります。
前:
後:
他のテキストフィールドでは発生せず、日付フィールドだけで発生します。公開フォームタイプを「基本」に変更すると発生しなくなります。私はそれが問題を引き起こしている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
誰かが同じ問題に終わった場合に備えて、この質問はここに残しておきます。
カスタムjQueryではなく、ビューUIを介して日付ピッカーオプションを配置します。