以前以下内容にて投稿させて頂き、無事解決して運用していたのですが、この度formbridge側のアップデートにより動作しなくなってしまいました。
カスタマイズリファレンス
https://formbridge.kintoneapp.com/help/customize
動いていたコード
(function() {
'use strict';
function setRadio(state) {
let checkbox = [];
//チェックボックスを結合
checkbox = state.record.広告媒体_web.value.concat(state.record.広告媒体_他.value);
// チェックボックスで選択された値にラジオボタンの値が含まれなければ、ラジオボタンを初期化
if (checkbox.indexOf(state.record.認知媒体.value) == -1) {
state.record.認知媒体.value = '';
}
if (fb.getElementByCode('認知媒体')) {
let el = fb.getElementByCode('認知媒体').getElementsByClassName('field');
// チェックボックスで選択されていない値はラジオボタンで非表示、選択されている値は表示
for (let i = 0; i < el.length; i++) {
if (checkbox.indexOf(el[i].innerText.trim()) == -1) {
el[i].style.display = 'none';
} else {
el[i].style.display = '';
}
}
return state;
}
}
fb.events.fields.広告媒体_web.changed = [function(state) {
setRadio(state);
return state;
}];
fb.events.fields.広告媒体_他.changed = [function(state) {
setRadio(state);
return state;
}];
fb.events.form.mounted = [function(state) {
const target = document.getElementsByClassName('el-steps el-steps--horizontal')[0];
// ノードに変化があれば実行
const observer = new MutationObserver(function() {
setRadio(state);
});
const config = { childList: true, subtree: true }; // 監視を指定するオプション
observer.observe(target, config);// 監視開始
return state;
}];
})();
内容としては「チェックボックス」による複数回答の中から「ラジオボタン」による単一解答のフォームを作成したく考えております。フォームとしては不動産の営業の来場者向けアンケートで「今まで見たことのある項目」を複数回答
↓
「一番最初に見たものはどれですか?」を単一解答で「今まで見たことのある項目」のみが表示されるラジオボタンで表示できればと考えております。
別サービスであるクエスタントでは実装できるようです。https://help.questant.jp/hc/ja/articles/360000284581-選択肢を表示する条件を設定
しかし、クエスタントではフォーム入力内容をkintoneへ反映させることが出来ずデータ連携を優先させフォームブリッジにて再現を試行錯誤しておりJavascriptコードなど幅広く解決策をいただければと藁にもすがる思いで投稿させていただきました。。
表題の件について会社で導入するにあたりトヨクモ様へご相談させていただきましたが標準機能ではフィールド全体の表示/非表示のみでカスタマイズ対応で返答がきております。
Javascriptを独学で学習しておりますが、データの受け渡しが未だ理解不足な点あるためまだ自分でコードは書いておりません。
フィールドコードは
「今まで見たことのある項目」
広告媒体_web
広告媒体_他
「一番最初に見たものはどれですか?」
認知媒体
です。(お恥ずかしながらkintoneのデータベース作業上日本語のフィールドコードになっております。)
よろしくお願いいたします。