いつも大変お世話になっております。
以下のように、チェック①②③④:ドロップダウンで、 未回収 、 回収 、 なし となってまして、
未回収 ⇒ 回収予定日 が必須;
回収 ⇒ 回収日 が必須&もし 回収予定日に記入がある場合、同時に表示させる ;
なし ⇒ 回収予定日 & 回収日 空欄&非表示とさせる動きがしたいです。
今のところ、何故か最初に なし とした1組だけが、その動きができる。(例えば:チェック③に回収予定日&回収日を記入後、 なし を選ぶと回収予定日&回収日は空欄になる。でも続けて、チェック②で なし を選んであと、回収を選ぶと前に入力した回収予定日②が消えない・・)
コードのどこがおかしいでしょうか?ご教示していただけるととても助かります。どうぞよろしくお願い致します。
(function () {
"use strict";
var events = [
"app.record.edit.show","app.record.create.show",
"app.record.index.edit.show","app.record.detail.show",
"app.record.edit.change.チェック1","app.record.create.change.チェック1","app.record.index.edit.change.チェック1",
"app.record.edit.change.チェック2","app.record.create.change.チェック2","app.record.index.edit.change.チェック2",
"app.record.edit.change.チェック3","app.record.create.change.チェック3","app.record.index.edit.change.チェック3",
"app.record.edit.change.チェック4","app.record.create.change.チェック4","app.record.index.edit.change.チェック4",
];
kintone.events.on(events, function(event) {
var record = event.record;
var check1 = record["チェック1"].value;
var check2 = record["チェック2"].value;
var check3 = record["チェック3"].value;
var check4 = record["チェック4"].value;
if(check1 === '未回収') {
kintone.app.record.setFieldShown('回収日1', false);
kintone.app.record.setFieldShown('回収予定日1', true);
} if(check1 === '回収') {
kintone.app.record.setFieldShown('回収日1', true);
kintone.app.record.setFieldShown('回収予定日1', true);
} if(!check1 || check1 === 'なし') {
kintone.app.record.setFieldShown('回収予定日1', false);
kintone.app.record.setFieldShown('回収日1', false);
record.回収予定日1.value = "";
record.回収日1.value = "";
}
if(check2 === '未回収') {
kintone.app.record.setFieldShown('回収日2', false);
kintone.app.record.setFieldShown('回収予定日2', true);
} if(check2 === '回収') {
kintone.app.record.setFieldShown('回収日2', true);
kintone.app.record.setFieldShown('回収予定日2', true);
} if(!check2 || check2 === 'なし') {
kintone.app.record.setFieldShown('回収予定日2', false);
kintone.app.record.setFieldShown('回収日2', false);
record.回収予定日2.value = "";
record.回収日2.value = "";
}
if(check3 === '未回収') {
kintone.app.record.setFieldShown('回収日3', false);
kintone.app.record.setFieldShown('回収予定日3', true);
} if(check3 === '回収') {
kintone.app.record.setFieldShown('回収日3', true);
kintone.app.record.setFieldShown('回収予定日3', true);
} if (!check3 || check3 === 'なし') {
kintone.app.record.setFieldShown('回収予定日3', false);
kintone.app.record.setFieldShown('回収日3', false);
record.回収予定日3.value = "";
record.回収日3.value = "";
}
if(check4 === '未回収') {
kintone.app.record.setFieldShown('回収日4', false);
kintone.app.record.setFieldShown('回収予定日4', true);
} if(check4 === '回収') {
kintone.app.record.setFieldShown('回収日4', true);
kintone.app.record.setFieldShown('回収予定日4', true);
} if (!check4 || check4 === 'なし') {
kintone.app.record.setFieldShown('回収予定日4', false);
kintone.app.record.setFieldShown('回収日4', false);
record.回収予定日4.value = "";
record.回収日4.value = "";
} return event;
});
// エラーを表示する処理
var events2 = [
"app.record.index.edit.submit","app.record.create.submit","app.record.edit.submit",
"app.record.edit.show","app.record.create.show","app.record.index.edit.show","app.record.detail.show",
"app.record.edit.change.チェック1" ,"app.record.create.change.チェック1" ,"app.record.index.edit.change.チェック1",
"app.record.edit.change.チェック2" ,"app.record.create.change.チェック2" ,"app.record.index.edit.change.チェック2",
"app.record.edit.change.チェック3" ,"app.record.create.change.チェック3" ,"app.record.index.edit.change.チェック3",
"app.record.edit.change.チェック4" ,"app.record.create.change.チェック4" ,"app.record.index.edit.change.チェック4",
"app.record.edit.change.回収日1" ,"app.record.create.change.回収日1" ,"app.record.index.edit.change.回収日1",
"app.record.edit.change.回収予定日1" ,"app.record.create.change.回収予定日1" ,"app.record.index.edit.change.回収予定日1",
"app.record.edit.change.回収日2" ,"app.record.create.change.回収日2" ,"app.record.index.edit.change.回収日2",
"app.record.edit.change.回収予定日2" ,"app.record.create.change.回収予定日2" ,"app.record.index.edit.change.回収予定日2",
"app.record.edit.change.回収日3" ,"app.record.create.change.回収日3" ,"app.record.index.edit.change.回収日3",
"app.record.edit.change.回収予定日3" ,"app.record.create.change.回収予定日3" ,"app.record.index.edit.change.回収予定日3",
"app.record.edit.change.回収日4" ,"app.record.create.change.回収日4" ,"app.record.index.edit.change.回収日4",
"app.record.edit.change.回収予定日4" ,"app.record.create.change.回収予定日4" ,"app.record.index.edit.change.回収予定日4",
];
kintone.events.on(events2, function(event) {
var record = event.record;
var checkVa1 = record["チェック1"].value;
var checkVa2 = record["チェック2"].value;
var checkVa3 = record["チェック3"].value;
var checkVa4 = record["チェック4"].value;
// 選択肢により必須表示
if(checkVa1 === '未回収'){
if ( !record["回収予定日1"].value ){
record["回収予定日1"].error = "必須項目!";
}else{
record["回収予定日1"].error = null;
}
}
if(checkVa1 === '回収'){
record["回収予定日1"].error = null;
if ( !record["回収日1"].value ){
record["回収日1"].error = "必須項目!";
}else{
record["回収日1"].error = null;
}
}
if(checkVa2 === '未回収'){
if ( !record["回収予定日2"].value ){
record["回収予定日2"].error = "必須項目!";
}else{
record["回収予定日2"].error = null;
}
}
if(checkVa2 === '回収'){
record["回収予定日2"].error = null;
if ( !record["回収日2"].value ){
record["回収日2"].error = "必須項目!";
}else{
record["回収日2"].error = null;
}
}
if(checkVa3 === '未回収'){
if ( !record["回収予定日3"].value ){
record["回収予定日3"].error = "必須項目!";
}else{
record["回収予定日3"].error = null;
}
}
if(checkVa3 === '回収'){
record["回収予定日3"].error = null;
if ( !record["回収日3"].value ){
record["回収日3"].error = "必須項目!";
}else{
record["回収日3"].error = null;
}
}
if(checkVa4 === '未回収'){
if ( !record["回収予定日4"].value ){
record["回収予定日4"].error = "必須項目!";
}else{
record["回収予定日4"].error = null;
}
}
if(checkVa4 === '回収'){
record["回収予定日4"].error = null;
if ( !record["回収日4"].value ){
record["回収日4"].error = "必須項目!";
}else{
record["回収日4"].error = null;
}
}
return event;
});
})();