必須項目等に入力がない場合、次へや回答ボタンの横に「入力されていない項目があります」等のエラーメッセージを表示できますでしょうか。
林田大平様
お世話になっております。
cstapの友利と申します。
以下の記述をしたJavaScriptファイルを読み込ませることで実装できます。
(function() {
"use strict";
let d;
const r = fields.filter(v => v.required === true);
fb.events.form.mounted = [function(state) {
const el = document.querySelector('.fb-content').firstElementChild.lastElementChild;
d = document.createElement('d');
const t = document.createTextNode('入力されていない項目があります');
d.appendChild(t);
el.appendChild(d);
d.style.visibility = 'hidden';
d.style.color = '#f56c6c';
return state;
}]
if (!form.isStepForm) {
r.forEach(v => {
fb.events.fields[v.code].changed = [function(state) {
let req = false;
r.forEach(e => {
if (record[e.code].value || record[e.code].value === 0) {
return
}
req = true;
})
if (req) {
d.style.visibility = 'visible';
} else {
d.style.visibility = 'hidden';
}
return state;
}]
})
} else {
form.steps.forEach(e => {
e.fields.forEach(v => {
const f = fields.filter(e => e.code === v)[0]
if (f.required === false) {
return;
}
fb.events.fields[v].changed = [function(state) {
let req = false;
e.fields.forEach(o => {
const h = fields.filter(e => e.code === o)[0]
if (h.required === false) {
return;
}
if (record[o].value || record[o].value === 0) {
return
}
req = true
})
if (req) {
d.style.visibility = 'visible';
} else {
d.style.visibility = 'hidden';
}
return state;
}]
})
})
}
})();
cstap 友利様
お世話になっております。
ありがとうございます。
試してみます。
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。