初めての投稿となります。小林あいと申します。
チェックボックスで表示非常時について を参考にしたいですが、複雑すぎて、初心者の私には応用すらできなくて、先輩かたどうかご指導お願い致します。
やりたいこと:契約プラン:Aプランにチェック入れたら、Aコースを選択しないとエラーとなり、選択したら、エラーが消える。また、チェックを外したら、Aコースで選択した項目もリセットされる。同じ動きをBコースでも実現したい。
参照のページではグループとほかの項目もいっぱいあって、自立で組めると思いましたが、難しい過ぎて、さっぱり応用ができなくて・・・
groupFieldCodeなどを削除して、ほかのコードはどこをどうすれば動くでしょうか?お手数をおかけますが、教えていただくと幸いです。どうぞよろしくお願い致します。
(function() {
"use strict";
var fieldsInfo = [
{groupFieldCode:'Aプラン',courseFieldCode:'Aコース',courseInfo: {'aコース':'aコース料金','bコース':'bコース料金','cコース':'cコース料金', } },
{groupFieldCode:'Bプラン',courseFieldCode:'Bコース',courseInfo: {'dコース':'dコース料金','eコース':'eコース料金','fコース':'fコース料金', } },
//{groupFieldCode:'Cプラン',courseFieldCode:'Cコース',courseInfo: {'gコース':'gコース料金','hコース':'hコース料金','iコース':'iコース料金', } },
//{groupFieldCode:'Dプラン',courseFieldCode:'Dコース',courseInfo: {'jコース':'jコース料金','kコース':'kコース料金','lコース':'lコース料金', } },
];
//レコードの追加、編集、詳細画面で適用する
varevents = ['app.record.detail.show',
'app.record.create.show',
'app.record.create.change.契約プラン',
'app.record.edit.show',
'app.record.edit.change.契約プラン',
];
fieldsInfo.forEach(function(planData) {
events.push('app.record.create.change.'+ planData.courseFieldCode);
events.push('app.record.edit.change.'+ planData.courseFieldCode);
});
kintone.events.on(events,function(event) {
varrecord = event.record;
varplanValue = record['契約プラン']['value'];
fieldsInfo.forEach(function(planData) {
varplanState = planValue.indexOf(planData.groupFieldCode) >=0;
kintone.app.record.setFieldShown(planData.groupFieldCode, planState);
if(!planState) {
// 非選択プランのコース選択をリセット
record[planData.courseFieldCode]['value'] = [];
// プラン選択時の表示のため、グループを開いておく
kintone.app.record.setGroupFieldOpen(planData.groupFieldCode,true);
}
varcourseValue = record[planData.courseFieldCode]['value'];
Object.keys(planData.courseInfo).forEach(function(courseFieldCode) {
varcourcePriceName = planData.courseInfo[courseFieldCode];
varcourceState = planState && (courseValue.indexOf(courseFieldCode) >=0);
kintone.app.record.setFieldShown(courcePriceName, courceState);
});
});
returnevent;
});
kintone.events.on(['app.record.create.submit','app.record.edit.submit'],function(event) {
varrecord = event.record;
varplanValue = record['契約プラン']['value'];
fieldsInfo.forEach(function(planData) {
varplanState = planValue.indexOf(planData.groupFieldCode) >=0;
if(planState && record[planData.courseFieldCode]['value'].length ===0) {
kintone.app.record.setGroupFieldOpen(planData.groupFieldCode,true);
record[planData.courseFieldCode]['error'] ='必須です。';
event['error'] ='コース必須エラー';
}
});
returnevent;
});
})();