Webformの日付フィールドの日付ピッカーに表示される月数を変更する必要があります。デスクトップでは2か月必要ですが、モバイルでは1か月です。
私はJSを使用してそれを制御することができないので、それを変更して2か月を示すWebformモジュールのパッチを作成しました。
これに対する解決策はありますか、Webformモジュールのフィールド設定で初期化した場合でも、JSを使用してこのようなものをどのように変更できますか?
CSS/JSタブでDrupal.webform.datePicker.options
を定義することで、デフォルトのdatePickerのオプションを設定できます。
@see https://cgit.drupalcode.org/webform/tree/js/webform.element.date.js
あなたはそれをjsで上書きすることができます...あなたのjsが接続されているときが秘訣です。
so in your module you need ....
<?php
function MYMODULE_form_alter(&$form, FormStateInterface $form_state, $form_id){
if ($form_id === 'webform_submission_YOURFORMID') {
$form['#attached']['library'][] = 'YOURMODULE/mymodule.fix-datepicker';
}
}
それからあなたのjsで次のようなことを試してください...
(function ($, Drupal, drupalSettings) {
'use strict';
Drupal.behaviors.fixMyDatepicker = {
attach: function (context) {
var dateElement = $('#edit-1'); // id of your date picker
var dateData = dateElement.data();
if (dateData.datepicker) {
makeChangesToDatePicker();
}
else {
var myInterv = setInterval(function() {
if (dateData.datepicker) {
makeChangesToDatePicker();
clearInterval(myInterv);
}
}, 100);
}
function makeChangesToDatePicker() {
//@TODO here check if mobile .
var settings = dateData.datepicker.settings;
settings.maxDate = '2019-03-11';
}
}
};
})(jQuery, Drupal, drupalSettings);
上記は私のために働いた。日付ピッカーは次のとおりです: https://jqueryui.com/datepicker/