ラジオボタンで、
①会食申請、②立替費申請 の 2つの選択肢があり、
①を選択した時は、
①で埋める項目を入れたグループを開いて、(他のグループは閉じて)その中にある、ドロップダウンや、日付、数値、文字列(複数行)の項目を必須にしたい。
②を選択した時は、
②で埋める項目を入れたグループを開いて、(他のグループは閉じて)その中にある、テーブルの1つ1つの項目を必須にしたい。(テーブル内の項目はプルダウン、文字列(1行)、日付、数値です)
↑こちらの回答で、①を必須にすることはできたのですが、
②がテーブルの項目で、エラーになってしまいました。
テーブルでも可能な実装方法を教えていただきたいです。
グループの開閉は、
以下を真似して、実装できました。
よろしくお願いします
実装したソースは以下です。
(function() {
“use strict”;
//ラジオボタンの値によって開くグループフィールドを変更する操作
var eventsSubmit = [‘app.record.detail.show’,
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.create.change.ラジオボタン’,
‘app.record.edit.change.ラジオボタン’];
// グループ1に属するフィールドのフィールドコード
var groupA = [
dropdown_hyodai
,
‘日付_会食’,
‘人数’,
‘文字列_複数行_目的’,
‘会食合計’
],
groupB = [
dropdown_tatekae
,
‘立替目的’,
‘立替_日付’,
‘立替_小計’
];
kintone.events.on(eventsSubmit, function(e) {
var record = e.record;
var radioButtonValue = record.ラジオボタン.value;
//グループフィールド開閉APIを用いて、まず全てのグループフィールドを閉じる
kintone.app.record.setFieldShown(‘group_1’, false);
kintone.app.record.setFieldShown(‘group_2’, false);
kintone.app.record.setFieldShown(‘テーブル’, false);
//ラジオボタンの値によって開くグループフィールドを切り替える
switch (radioButtonValue) {
case “会食・懇親会申請”:
kintone.app.record.setFieldShown(‘group_1’, true);
break;
case “立替諸経費申請”:
kintone.app.record.setFieldShown(‘group_2’, true);
kintone.app.record.setFieldShown(‘テーブル’, true);
break;
}
});
kintone.events.on([
‘app.record.create.submit’,
‘app.record.edit.submit’
], function(event){
if(event.record.ラジオボタン.value == ‘会食・懇親会申請’){
groupA.forEach(function(fieldCode){
event.record[fieldCode].error = event.record[fieldCode].value ? ‘’ : ‘必須項目です。’;
});
}else if(event.record.項目.value == ‘立替諸経費申請’){
groupB.forEach(function(fieldCode){
event.record[fieldCode].error = event.record[fieldCode].value ? ‘’ : ‘必須項目です。’;
});
}
return event;
});
})();
edit.js:124 Uncaught TypeError: Cannot read property ‘value’ of undefined
↑というエラーが出てしまいます。
2つ目の↓でのvalueです。
event.record[fieldCode].error = event.record[fieldCode].value ? ‘’ : ‘必須項目です。’;