チェックボックスにクリックでチェック(OnとOff)した場合の
動作について質問があります。
■実現したいこと
(1)チェックをすると、定義したフィールドが表示される。
→こちらは動いております。
(2)チェックを外すと、定義したフィールドが非表示になる
それに加え、フィールド内の値を”なし”または空白に設定する
→フィールドの非表示は実現できましたが、
再度クリックしても、以前にフィールド内に設定した値が
そのまま保持されております。
■画面イメージ
[作業内容]チェックボックスがあります。
クリーニング
その他
クリーニングにチェックを入れると、”クリーニング【床】”のボックスが
表示され、ラジオボタンで 「なし」「一部」「全部」を選択できます。
こちらの初期値は「なし」です。
また、その他にチェックを入れると、”その他”のテキストボックスが表示されます。
こちらの初期値は空白(null)です。
実際のスクリプトは以下となります。ChromeのF12のconsole上では
何もエラーは表示されません。
不備があるかご教授願います。
//----------レコードの追加、編集、詳細画面で適用する-----------------------------
var events = [‘app.record.detail.show’,
‘app.record.create.show’,
‘app.record.create.change.workType’,
‘app.record.create.change.cleanFloor’,
‘app.record.edit.show’,
‘app.record.edit.change.workType’,
‘app.record.edit.change.cleanFloor’];
//----------”チェック”(選択した場合)にフィールドを表示
//----------チェックボックスを外すと、ラジオボタンやテキストフィールドの値を消去する
kintone.events.on(events, function(event) {
var record = event.record;
var workType = record[‘workType’][‘value’];
if (workType.indexOf(‘クリーニング’) >= null) {
kintone.app.record.setFieldShown(‘cleanFloor’, true);
} else {
kintone.app.record.setFieldShown(‘cleanFloor’, false);
event.record.cleanCeiling[‘value’] = “なし”;
}
if (workType.indexOf(‘その他’) >= 0) {
kintone.app.record.setFieldShown(‘workTypeEtc’, true);
} else {
kintone.app.record.setFieldShown(‘workTypeEtc’, false);
event.record.workTypeEtc[‘value’] = “なし”;
}
});