新規投稿
フォローする

スペースフィールドにドロップダウンリストを埋め込むと増殖してしまう。

お世話になっております。

下記、コードで大項目フィールド(ドロップダウン)を変更すると中項目フィールト(ドロップダウン)に大項目に対応した選択肢だけを表示させるようにしたいと思います。

既存のフィールドで行うにはjqueryかDOM操作が必要ということだったので、スペースフィールドにドロップダウンリストを作成して達成しています。

問題は目標自体は達成できたのですが、大項目フィールドを変えるごとに新しい中項目フィールドが増殖してしまうことです。

こちらのページの増殖防止方法ではリストが書き換わらないので困っています。どなたかスペースフィールドの初期化方法がわかる方はご教授ください。

よろしくお願いいたします。

(function () {
'use strict';

// 大項目の選択肢に応じて中項目の選択肢を変える
async function ChangeArea(event){
 
var midbox_hako = new Array(351);

//中項目のフォーム設計情報の取得
var body = await { "app": 143};
var resp1 = await kintone.api(kintone.api.url('/k/v1/form', true), 'GET', body);
for(var k = 0; k < resp1.properties.length; k++){
 
if(resp1.properties[k].code === "中項目"){ midbox = await resp1.properties[k].options; }
 
}

 
var gbox = record['大項目']['value'];
switch (gbox){
case "選択肢A":
//中項目を代入する処理
break;
case "選択肢B":
//中項目を代入する処理
break;
}
console.log(gbox);

//appendchild
var dropdownb = document.createElement('select');
dropdownb.id = 'dropdown';
dropdownb.style.height = '50px';
dropdownb.style.width = '200px';
for(var i = 0; i < midbox_hako.length; i++){
eval("dropdownb.appendChild(midbox_hako[" + i + "]);");
}
kintone.app.record.getSpaceElement('drop').appendChild(dropdownb);

return event;

}


kintone.events.on(["app.record.create.show", "app.record.edit.show",
'app.record.edit.change.大項目','app.record.create.change.大項目'], function (event) {

console.log("追加イベント編集イベント");

// 大項目変更による中項目のフィールド値変更
ChangeArea(event);

return event;

});
})();
0

0件のコメント

サインインしてコメントを残してください。