お世話になっております。
タイトルの件ですが、
チェックボックス1~3があり、3つの内、いずれかにチェックが付けば
文字列(1行)が表示するという仕様にしたいのですが、現在下記コードを
書いていますが、チェック3でしか反応しません。
kintone.events.on(events, function(event) {
var record = event.record;
var Cybozu = record['チェックボックス1']['value'];
var Cybozu = record['チェックボックス2']['value'];
var Cybozu = record['チェックボックス3']['value'];
if (Cybozu.length === 0) {
record['文字列1行']['value'] = "";
kintone.app.record.setFieldShown('文字列1行', false);
return event;
}
for (var i = 0; i < Cybozu.length; i++) {
if (Cybozu[i] === 'チェックボックス1') {
kintone.app.record.setFieldShown('文字列1行', true);
}
else if (Cybozu[i] === 'チェックボックス2') {
kintone.app.record.setFieldShown('文字列1行', true);
}
else if (Cybozu[i] === 'チェックボックス3') {
kintone.app.record.setFieldShown('文字列1行', true);
}
}
return event;
});
訳があり、1つのチェックボックスの項目に1~3までを指定しておらず、
各チェックボックスの項目は1だけで指定しており、項目名はフィールドコード同じです。
お手数でございますが、ご確認お願い致します。
Naoさん
こんにちは。
変数名(Cybozu)を変更して、繰り返しをやめてifで分岐しました。おためしください。
kintone.events.on(events, function(event) {
var record = event.record;
var check1 = record['チェックボックス1']['value'];
var check2 = record['チェックボックス2']['value'];
var check3 = record['チェックボックス3']['value'];
// いずれかにチェックがあればtrue
if (check1 || check2 || check3) {
kintone.app.record.setFieldShown('文字列1行', true);
} else {
kintone.app.record.setFieldShown('文字列1行', false);
}
return event;
});
カキ氷様
ご返信ありがとうございます。
ご教授いただいたように書き換えたのですが、最初から文字列1行が表示され
どのチェックボックスをチェックしても変化がありませんでした。
(function () {
"use strict";
var events = [
'app.record.detail.show',
'app.record.create.show',
'app.record.edit.show',
'app.record.create.change.チェックボックス1',
'app.record.edit.change.チェックボックス1',
'app.record.create.change.チェックボックス2',
'app.record.edit.change.チェックボックス2',
'app.record.create.change.チェックボックス3',
'app.record.edit.change.チェックボックス3'
];
kintone.events.on(events, function(event) {
var record = event.record;
var check1 = record['チェックボックス1']['value'];
var check2 = record['チェックボックス2']['value'];
var check3 = record['チェックボックス3']['value'];
if (check1 || check2 || check3) {
kintone.app.record.setFieldShown('文字列1行', true);
} else {
kintone.app.record.setFieldShown('文字列1行', false);
}
return event;
});
})();
コード全文ですと、上記のように書いていますが、何か間違いはありますでしょうか。
度々お手数でございますが、ご確認お願い致します。
Naoさん
すみません。if判定の部分抜けてました。
(function () {
"use strict";
var events = [
'app.record.detail.show',
'app.record.create.show',
'app.record.edit.show',
'app.record.create.change.チェックボックス1',
'app.record.edit.change.チェックボックス1',
'app.record.create.change.チェックボックス2',
'app.record.edit.change.チェックボックス2',
'app.record.create.change.チェックボックス3',
'app.record.edit.change.チェックボックス3'
];
kintone.events.on(events, function(event) {
var record = event.record;
var check1 = record['チェックボックス1']['value'];
var check2 = record['チェックボックス2']['value'];
var check3 = record['チェックボックス3']['value'];
if (check1.length || check2.length || check3.length) {
kintone.app.record.setFieldShown('文字列1行', true);
} else {
kintone.app.record.setFieldShown('文字列1行', false);
}
return event;
});
})();
カキ氷様
ご返信ありがとうございます。
if判定の部分を書き足しましたら、無事動作致しました。
今後ともよろしくお願いいたします。