しぶい様
ご確認いただきまして、有難う御座います。
情報に誤りがあり大変失礼いたしました。仰る通りchange イベントに設定している ‘チェックボックス’ と処理内の ‘フォロー対応手段’ は同一のものです。
今回、該当のコード部分のみ抜粋しておりましたのでソース全体を以下に記載致します。(上の投稿から内容を一部修正しております)
他の処理が影響しているのでしょうか。例えば「el.style.display = ‘none’;」の部分が影響しているかなど。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
(function ($) {
“use strict”;
// 最初から非活性とする
kintone.events.on([
‘app.record.create.show’,
‘app.record.edit.show’,
], function (event) {
var record = event.record;
record[‘選択肢’][‘disabled’] = true;
record[‘連絡先_電話番号’][‘disabled’] = true;
return event;
});
/**
* 下記3項目の表示非表示
* ・フォロー対応手段
* ・連絡先
* ・連絡先電話番号
*/
kintone.events.on([
‘app.record.create.show’,
‘app.record.edit.show’,
// チェックボックスをチェックした場合、発動
‘app.record.create.change.フォロー対応手段’,
‘app.record.edit.change.フォロー対応手段’,
‘app.record.create.change.連絡先’,
‘app.record.edit.change.連絡先’,
], function (event) {
var record = event.record;
var followMeans = record[‘フォロー対応手段’][‘value’];
// フォロー対応手段に「不要」が含まれている場合、他のチェックを外し、連絡先・連絡先_電話番号を非表示にする
if (followMeans.indexOf(‘不要’) > -1) {
record[‘フォロー対応手段’][‘value’] = [‘不要’];
record[‘連絡先’][‘value’] = ‘架電不要’;
record[‘連絡先_電話番号’][‘value’] = ‘’;
kintone.app.record.setFieldShown(‘連絡先’, false);
kintone.app.record.setFieldShown(‘連絡先_電話番号’, false);
} else {
// 電話が選択されている場合は、連絡先を表示
if (followMeans.indexOf(‘電話’) > -1) {
kintone.app.record.setFieldShown(‘連絡先’, true);
kintone.app.record.setFieldShown(‘連絡先_電話番号’, true);
let changeElement = (el) => {
if (el.style.display == ‘’) {
el.style.display = ‘none’; // 電話選択していないときは、非表示
} else {
el.style.display = ‘’;
}
}
} else {
record[‘連絡先’][‘value’] = ‘架電不要’;
kintone.app.record.setFieldShown(‘連絡先’, false);
kintone.app.record.setFieldShown(‘連絡先_電話番号’, false);
}
}
// 架電不要の場合は、連絡先_電話番号を非表示にする
if (record[‘連絡先’][‘value’] == ‘架電不要’) {
kintone.app.record.setFieldShown(‘連絡先_電話番号’, false);
}
return event;
});
/**
* 病院紹介有無によって病院紹介情報テーブル表示/非表示
*/
kintone.events.on([
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.create.change.病院紹介有無’,
‘app.record.edit.change.病院紹介有無’,
], function (event) {
var record = event.record;
if (record[‘病院紹介有無’][‘value’] == ‘なし’) {
kintone.app.record.setFieldShown(‘病院紹介情報’, false);
} else {
kintone.app.record.setFieldShown(‘病院紹介情報’, true);
}
return event;
});
/**
* フォロー対応手段で「SMS」が選択されているかどうかによって、SMS送信履歴テーブル表示/非表示
*/
kintone.events.on([
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.create.change.フォロー対応手段’,
‘app.record.edit.change.フォロー対応手段’,
‘app.record.create.change.SMS送信区分’,
‘app.record.edit.change.SMS送信区分’,
‘app.record.index.edit.change.SMS送信区分’,
], function (event) {
var record = event.record;
var table = record[‘SMS送信履歴’].value ;
kintone.app.record.setFieldShown(‘SMS送信履歴’, false);
if (record[‘フォロー対応手段’][‘value’].indexOf(‘SMS’) != -1) {
kintone.app.record.setFieldShown(‘SMS送信履歴’, true);
switch (table[0].value[‘SMS送信区分’].value){
case “1ヶ月フォロー前” :
table[0].value[‘SMS送信内容’].value = “test そろそろ1ヶ月フォローです” ;
table[0].value[‘SMS送信内容’][‘disabled’] = true ;
break ;
case “1ヶ月フォロー後” :
table[0].value[‘SMS送信内容’].value = “test もう受けましたか?1ヶ月フォロー” ;
table[0].value[‘SMS送信内容’][‘disabled’] = true ;
break ;
default :
table[0].value[‘SMS送信内容’].value = “任意記載” ;
table[0].value[‘SMS送信内容’][‘disabled’] = false ;
break ;
}
}
return event;
});
})(jQuery);