初歩的な質問で申し訳ないのですが、どこを修正すればうまく稼働するのかがわからず困っています。
お知恵をお貸しいただけないでしょうか?
「回答の条件によって別フィールドの表示/非表示を切り替える」のサンプルを使って
ドロップダウンの回答結果で別フィールドの表示/非表示がしたいと考えています。
サンプルアプリを使って、そのままjsをアップロードした場合はうまくいくのですが
別アプリで
ドロップボックス(keiyaku)が年間契約の場合は(keiyakukaisuu)を表示する
という指示が出来ません。
//契約書で「年間契約」が選択された場合は「契約回数」フィールドを表示する
for(var i=0; i < keiyaku.length; i++){
if(keiyaku[i] == '年間契約'){
kintone.app.record.setFieldShown('keiyakukaisuu',true);
}else{
kintone.app.record.setFieldShown('keiyakukaisuu',false);
}
どこをどうすればいいのでしょうか?
Yoshimi Nagao さん
cstapの瀧ヶ平です。
コードを見ると
else{
kintone.app.record.setFieldShown(‘keiyakukaisuu’,false);
のあとに}が不足しているようです。
修正すれば動くかと思います。
>cstapの瀧ヶ平さま
ありがとうございます★
が、動きませんでした(泣)
すいません。全部載せちゃいます。
何か抜けてますかね..?
/*
* 回答の条件によって別フィールドの表示/非表示を切り替えるサンプルプログラム
* Copyright (c) 2014 Cybozu
*
* Licensed under the MIT License
*/
(function() {
“use strict”;
//レコードの追加、編集、詳細画面で適用する
var events = ['app.record.detail.show',
'app.record.create.show',
'app.record.create.change.keiyaku',
'app.record.create.change.keiyakukaisuu',
'app.record.edit.show',
'app.record.edit.change.keiyaku',
'app.record.edit.change.keiyakukaisuu',]
kintone.events.on(events, function(event) {
var record = event.record;
//契約書で「年間契約」が選択された場合は「契約回数・開始日・値引率・掲載金額(年契)」フィールドを表示する
for(var i=0; i < keiyaku.length; i++){
if(keiyaku[i] == '年間契約'){
kintone.app.record.setFieldShown('keiyakukaisuu',true);
}else{
kintone.app.record.setFieldShown('keiyakukaisuu',false);
}
});
})();
Yoshimi Nagao さん
ドロップボックスとはドロップダウンのことでしょうか?
だとすれば
for(var i=0; i < keiyaku.length; i++){
if(keiyaku[i] == '年間契約'){
kintone.app.record.setFieldShown('keiyakukaisuu',true);
}else{
kintone.app.record.setFieldShown('keiyakukaisuu',false);
}
の部分を
if(keiyaku == '年間契約'){
kintone.app.record.setFieldShown('keiyakukaisuu',true);
}else{
kintone.app.record.setFieldShown('keiyakukaisuu',false);
}
とすれば良いと思います。
瀧ヶ平さま
おはようございますー。
あー!また、間違えてしまいました。
いっつもドロップボックスを使ってるからか、ドロップダウンをすぐ言い間違いしてしまいます..(・_・
ありがとうございます。
試してみます!
瀧ヶ平さま
おっそい返答ですが、やってみました。
ですが、反応せずでした..。
何か根本的に間違っているのかもしれません。
もう少し頑張ってみます。
Yoshimi Nagaoさん
すいません、よく見たらコードそのものがJavaScriptの文法エラー起こしてますね。
さらにkeiyakuという変数にレコードからデータが代入されていない為動いていないようです。
なので、
(function() {
"use strict";
//レコードの追加、編集、詳細画面で適用する
var events = ['app.record.detail.show',
'app.record.create.show',
'app.record.create.change.keiyaku',
'app.record.create.change.keiyakukaisuu',
'app.record.edit.show',
'app.record.edit.change.keiyaku',
'app.record.edit.change.keiyakukaisuu'];
kintone.events.on(events, function(event) {
var record = event.record;
var keiyaku = record['keiyaku'].value;
//契約書で「年間契約」が選択された場合は「契約回数・開始日・値引率・掲載金額(年契)」フィールドを表示する
if(keiyaku == '年間契約'){
kintone.app.record.setFieldShown('keiyakukaisuu',true);
}else{
kintone.app.record.setFieldShown('keiyakukaisuu',false);
}
});
})();
という風に変更すれば動くと思います。
丁寧な回答ができずすいませんでした
瀧ヶ平さま
うまく稼働しました!
嬉しすぎて咳き込みました(笑)
やっぱりちゃんと勉強しないとダメですね。
頑張ります。
とっても助かりました。ありがとうございます。