回答の条件によって別フィールドの表示/非表示を切り替える について

初歩的な質問で申し訳ないのですが、どこを修正すればうまく稼働するのかがわからず困っています。
お知恵をお貸しいただけないでしょうか?

「回答の条件によって別フィールドの表示/非表示を切り替える」のサンプルを使って
ドロップダウンの回答結果で別フィールドの表示/非表示がしたいと考えています。

サンプルアプリを使って、そのまま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);
     }

とすれば良いと思います。

瀧ヶ平さま

おはようございますー。
あー!また、間違えてしまいました。
いっつもドロップボックスを使ってるからか、ドロップダウンをすぐ言い間違いしてしまいます..(・_・:wink:

ありがとうございます。
試してみます!

瀧ヶ平さま

おっそい返答ですが、やってみました。
ですが、反応せずでした..。
何か根本的に間違っているのかもしれません。

もう少し頑張ってみます。

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);
    }
  });
})();

という風に変更すれば動くと思います。
丁寧な回答ができずすいませんでした

瀧ヶ平さま

うまく稼働しました!
嬉しすぎて咳き込みました(笑)

やっぱりちゃんと勉強しないとダメですね。
頑張ります。

とっても助かりました。ありがとうございます。