FormbridgeでチェックBOXをチェックしたら担当者フィールドに名前を入力、日付フィールドに今日の日付を入力したい。
担当者、日付フィールドを編集不可としています。
担当者は表示はするが保存されない
日付は表示も保存もされない状態です。
試しに編集可の状態で試しましたが表示はされるが保存されません。
どなたか分かる方みえませんでしょうか
よろしくお願いいたします。
/* =========================
共通
========================= */
function todayJST() {
const d = new Date();
d.setHours(d.getHours() + 9);
return d.toISOString().slice(0, 10);
}
function fire(input) {
input.dispatchEvent(new Event('input', { bubbles: true }));
input.dispatchEvent(new Event('change', { bubbles: true }));
}
/** ===== name属性を持つ保存対象 input を取得 ===== */
function getSaveInput(fieldCode) {
return document.querySelector(
`input[name="${fieldCode}"]`
);
}
/** ===== 日付 ===== */
function setDate(fieldCode, value) {
const input = getSaveInput(fieldCode);
if (!input) {
console.warn('日付保存用 input が見つかりません:', fieldCode);
return;
}
input.value = value;
fire(input);
}
/** ===== 担当者 ===== */
function setStaff(fieldCode, value) {
const input = getSaveInput(fieldCode);
if (!input) {
console.warn('担当者保存用 input が見つかりません:', fieldCode);
return;
}
input.value = value;
fire(input);
}
function getStaff() {
const email =
document.querySelector('#__kintoneAppAuthenticationEmail__')?.value || '';
return STAFF_MAP[email.split('@')[0]] || '';
}
/* =========================
チェックボックス
========================= */
function handleCheckbox(code) {
const conf = CHECK_CONFIG[code];
const wrap = document.querySelector(`[data-field-code="${code}"]`);
if (!conf || !wrap) return;
const checkbox = wrap.querySelector('input[type="checkbox"]');
if (!checkbox) return;
if (checkbox.checked) {
setDate(conf.date, todayJST());
setStaff(conf.staff, getStaff());
} else {
setDate(conf.date, '');
setStaff(conf.staff, '');
}
}
Object.keys(CHECK_CONFIG).forEach(code => {
const wrap = document.querySelector(`[data-field-code="${code}"]`);
if (!wrap) return;
wrap.addEventListener('change', e => {
if (e.target.type === 'checkbox') handleCheckbox(code);
});
});
});