FormBridgeチェックボックスのデータについて

JavaScript初心者です。選択肢の変更によって文字列フィールドの入力内容を削除したいと思っています。

 

A・B・その他

のようにラジオボタン・チェックボックスで複数選択肢があるアンケートを作成する際、[その他] を選択すると標準の条件分岐機能によって、文字列フィールドが表示されるようにしております([その他]を選択した回答者には自由記述で記入していただくつもりです)。

回答者が [その他] を選択 ⇒ 文字列フィールドに入力 ⇒ [その他] の選択を外す

ということが起こると [その他] を選択していないのに文字列は入力されているデータがkintoneに入ってくることになり、集計する時に少々厄介です。選択肢による条件分岐はラジオボタンとチェックボックスで実装しており、ラジオボタンの場合は以下のコードにより文字列フィールドの入力内容を削除できました(【ラジオボタンの場合】の部分)。ラジオボタンですのでフィールドデータの変更を発生条件にしています。

 

チェックボックスの場合も同様に、フィールドデータの変更を発生条件にしようと思っておりますが、どのようにコーディングすればいいかわからず困っております。

以下の【チェックボックスの場合】では、フィールドデータの変更を発生条件とした後に、チェックボックスの選択肢が選ばれていなければ、その選択肢に応じた文字列フィールド(条件分岐によって表示を制御)の入力内容を削除する といったつもりでコーディングしました。

チェックボックスはkintoneでcsv出力すると、選択された場合は「1」となっていましたので以下のようなコードにしています。

Java Scriptの基本も怪しいぐらいの初心者ですので、どこを直せばよいのか丁寧なご指摘をいただけると大変助かります。宜しくお願い致します。

 

//【ラジオボタンの場合】
(function() {
"use strict";
fb.events.fields."ラジオボタンフィールドコード".changed = [function (state) {
console.log(state);
state.record['文字列フィールドコード']['value'] = '';
}]
return state;
})();


//【チェックボックスの場合】
(function() {
"use strict";
fb.events.fields."チェックボックスのフィールドコード".changed = [function (state) {
if state.record[チェックボックスのフィールドコード'']['選択肢名']['value'] != 1
console.log(state);
state.record['文字列フィールド']['value'] = '';
}]
return state;
})();

三枝正典さま

チェックボックスの場合は値(value)が配列になるようですので、includes を使って「その他」の選択肢が含まれているか確認し、処理を行うのが良いかと思います。

サンプルコードを記載します。

(function() {
"use strict";
fb.events.fields.チェックボックスのフィールドコード.changed = [function (state) {
if(!state.record.チェックボックスのフィールドコード.value.includes('その他の選択肢名')) {
state.record.文字列のフィールドコード.value = '';
}
return state;
}];
})();

position nullさま

試してみたところ、想定通りの動作を確認できました!!

ありがとうございました!