いつもお世話になっています。
現在、Kintone上でJavaScriptによるカスタマイズを行っています。
Kintoneの別アプリから情報を取得し、スペース上にドロップダウンを作ります。
このドロップダウンを選択した際、UI上の文字列に選択した文字を表示させたいのですがうまくいきません。
また、ドロップダウンを選択する前に、ドロップダウンに初期表示されている値を初期値として文字列に入れておく
動作も動きません。
どちらも「event.record」を使った式なので、この書き方がおかしいのが原因と思われるのですが、
どのように書けばいいのか分からないので、アドバイスを頂けませんでしょうか。
よろしくお願いいたします。
xml
1 function Kokyaku(event) { 2 var record = event.record; 3 // クエリ文の設定 4 var query = { 5 "app": 222,//別アプリの番号 6 }; 7 return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', query).then( 8 function(resp) { 9 var AppRecords = resp.records;//別アプリから取得したレコード 10 var lbKokyaku = document.createElement("div"); 11 lbKokyaku.appendChild(document.createTextNode('顧客')); 12 13 var ddKokyaku = document.createElement('select'); 14 ddKokyaku.id = 'dd_Kokyaku'; 15 ddKokyaku.style.width = "200px"; 16 ddKokyaku.style.height = "40px"; 17 18 19 if (document.getElementById('dd_Kokyaku') !== null) { 20 return; 21 } 22 //最初にプルダウンを、全てクリアする 23 for (var i=ddKokyaku.childNodes.length-1; i>=0; i--) { 24 ddKokyaku.removeChild(mySpaceField.childNodes[i]); 25 } 26 //プルダウンに項目入力 27 AppRecords.forEach(function(AppRecord,i){ 28 ddKokyaku.add( new Option(AppRecord['顧客略称']['value'], i+1 )); 29 if(i===0){ 30 //ここがうまくいかない:その1===================================================================== 31 event.record['顧客']['value']=AppRecord['顧客略称']['value']//文字列へ初期値入力 32 //ここがうまくいかない:その1終=================================================================== 33 } 34 }); 35 ddKokyaku.add( new Option( '手入力', AppRecords.length+1)); 36 37 //ここでスペースにラベル及びドロップダウン情報を挿入 38 kintone.app.record.getSpaceElement('Kokyaku').appendChild(lbKokyaku); 39 kintone.app.record.getSpaceElement('Kokyaku').appendChild(ddKokyaku); 40 41 dd_Kokyaku.onchange = function(event) 42 { 43 //ここがうまくいかない:その2==================================================================== 44 var record = event.record; 45 var selectedItem = this.options[ this.selectedIndex ]; 46 if(selectedItem.text==='手入力'){ 47 event.record['顧客'].disabled=false;// 手入力OK 48 event.record['顧客']['value']='';//文字列へ入力 49 }else{ 50 event.record['顧客'].disabled=true; // 手入力禁止 51 event.record['顧客']['value']=selectedItem.text;//文字列へ入力 52 } 53 //ここがうまくいかない:その2終==================================================================== 54 } 55 return event; 56 }).catch(function(e) { 57 alert("レコードの取得でエラーが発生しました - error: " + e.message); 58 return false; 59 }); 60 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。