生年月日を必須の項目として入力してもらうのですが、日付の枠内をクリックしたときに、日付の開始日をある特定の年月日から表示させたいのですが、可能なのでしょうか?
平均年齢が40歳前後だとして、そのくらいの年月日の表示でスタートさせたいという理由です。
初期値で入力させておく方法もあると思いますが、その場合はもし飛ばしてしまった際に、その日付で登録されてしまうため、初期値として入力しておくのは厳しいということです。
ただ、初期値でその日付で登録されていても、例えば、その日付の枠を一度もクリックしていなければ、エラーとして表示されるとかなら大丈夫です。
林田大平様
お世話になっております。
cstapの友利と申します。
日付のフィールドをクリックした時に値を設定することで可能です。
以下の記述をしたJavaScriptファイルを読み込ませることで実装できます。
(function () {
'use strict';
fb.events.form.mounted = [function (state) {
const input=fb.getElementByCode('date_1').getElementsByClassName("el-date-editor")[0] // date_1は対象とする日付フィールドのフィールドコード
const clickDate= () => {
if (state.record.date_1.value!=="") { // date_1は対象とする日付フィールドのフィールドコード
return
}
state.record.date_1.value=new Date(2010,0) // date_1は対象とする日付フィールドのフィールドコード
// クリック時にセットする値は new Date(年, 月 - 1, 日)で設定できます。
}
input.addEventListener('click', clickDate, false)
return state;
}];
})();
cstap 友利様
お世話になっております。
ご回答ありがとうございます。
試してみましたが、おそらく私の知識不足のため、うまくいかなかったです。
フィールドコードと登録されたJavaScriptは下図の通りです。
他に条件としては、ステップフォームを使用しております。
また、条件分岐も使用しております。
他に、Javascriptは①郵便番号からの自動アドレス取得、②ラジオボタンの強制リセット、③条件分岐時に必須項目があっても次に行けるバリデーションのものを使用しております。
これらに影響があるのでしょうか。
林田大平様
他にjavascriptファイルを読み込ませている場合は以下のコードで可能かと思います。
(function () {
'use strict';
fb.events.form.mounted.push(function (state) {
const input=fb.getElementByCode('birthday').getElementsByClassName("el-date-editor")[0]
const clickDate= () => {
if (state.record.birthday.value!=="") {
return
}
state.record.birthday.value = new Date(1990, 0, 1)
}
input.addEventListener('click', clickDate, false)
return state;
});
})();