チェックボックスの値によって他フィールドの値を変更

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

タイトルの件について、「その他」というチェックボックスに

チェックがついている場合に「その他記載欄」を表示して、

チェックがついていない場合は「その他記載欄」を非表示にし、

値をクリアしたいと考えております。

*----------------------------------------------------------------------*

kintone.events.on(events, function(event) {
    var record = event.record;
    var Cybozu = record[‘その他’][‘value’];
    if (Cybozu.length === 0) {
kintone.app.record.setFieldShown(‘その他記入欄’, false);
    }
    for (var i = 0; i < Cybozu.length; i++) {
if (Cybozu[i] === ‘有’) {
    kintone.app.record.setFieldShown(‘その他記入欄’, true);
}else if (Cybozu.length === 0) {
    record[‘その他記入欄’][‘value’] = “”;
    kintone.app.record.setFieldShown(‘その他記入欄’, false);
}
    }
    return event;
});

*----------------------------------------------------------------------*

上記コードで設定しているのですが、表示・非表示はできていますが、

チェックを外した場合に「その他記載欄」の値のクリアがうまくいきません。

ご教授いただければ幸いでございます。

Naoさん

 

Cybozuのlengthが0の場合にはfor文のelse ifに到達することがないため、

その他記入欄のクリアができなくなっているようです。

 

以下のような感じではいかがでしょうか。

 

kintone.events.on(events, function(event) {
var record = event.record;
var Cybozu = record['その他']['value'];
if (Cybozu.length === 0) {
record['その他記入欄']['value'] = "";
kintone.app.record.setFieldShown('その他記入欄', false);
return event;
}
for (var i = 0; i < Cybozu.length; i++) {
if (Cybozu[i] === '有') {
kintone.app.record.setFieldShown('その他記入欄', true);
}
}
return event;
});

武井 琢治 様
ご返信ありがとうございます。

ご教授いただいたコードでうまく動作致しました。
ありがとうございます。
今後ともよろしくお願いいたします。