matu
1
カスタマーサポートよりご紹介をして頂き、初めてご質問をさせて頂きます。
現在、チェックボックスでチェック時に、文字列を表示させたいのですが、
どうしてもうまくいかない状態です。(以前に似たご質問も確認済です)
具体的には、チェックボックスの設定で「項目と順番」に情報、労務、発行、
その他を設定しており、その他にチェックをした時に備考欄の文字列を
表示させたいのです。
以下は情報です。
■チェックボックスの設定
フィールド名 :発注担当
項目と順番 :情報、労務、発行、その他
フィールドコード:chk1
■文字列(1行)の設定
フィールド名:備考欄
フィールドコード:biko
また、以下はうまく機能しないコードです。
(function () {
“use strict”;
var events = [
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.create.change.発注担当 ’,
‘app.record.edit.change.発注担当 ’];
kintone.events.on(events, function(event) {
var record = event.record;
var chk1 = record[‘その他’][‘value’];
if (chk1.length) {
kintone.app.record.setFieldShown(‘備考欄’, true);
} else {
kintone.app.record.setFieldShown(‘備考欄’, false);
}
return event;
});
})();
以上ですが、どこに問題があるのかご教示をお願いできないでしょうか?
よろしくお願いいたします。
ko_ji
(ko_ji)
2
こんにちは。
change イベント含め、カスタマイズを行う際には、
フィールド名ではなく、フィールドコードを指定する必要があります。
記載していただいたコードでは、各処理でフィールド名が記載されているため、
処理が機能しないかと思います。
各処理に記載しているフィールド名を、フィールドコードに修正することで、
処理が動作するか確認してみてください。
matu
3
ko_ji様
お返事ありがとうございます。
ko_ji様がおっしゃる通りに下記のようにフィールドコードに変更を
行ないましたが、備考欄の「文字列(1行)」が表示されます。
(function () {
“use strict”;
var events = [
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.create.change.chk1 ’,
‘app.record.edit.change.chk1 ’];
kintone.events.on(events, function(event) {
var record = event.record;
var chk1 = record[‘その他’][‘value’];
if (chk1.length) {
kintone.app.record.setFieldShown(‘biko’, true);
} else {
kintone.app.record.setFieldShown(‘biko’, false);
}
return event;
});
})();
他に考えられる原因はございませんでしょうか?
誠に恐縮ではございますが、よろしくお願いいたします。
matu
4
追記
言葉足らずで申し訳ございません。
「その他」にチェックをしていない状態で、備考欄が表示される
という意味です。
ko_ji
(ko_ji)
5
var chk1 = record[‘その他’][‘value’]; についても、
‘その他’ を chk1 に修正する必要があるかと思います。
また、chk1 の値が「その他」であるか判定してい場合、if (chk1.length) の処理を、
if(chk1 == ‘その他’) に修正する必要があるかと思います。
上記内容を修正して、動作確認してみてくださいー
matu
6
ko_ji様
お返事ありがとうございます。
ご指摘を頂いた2か所について、修正を行いました。
(function () {
“use strict”;
var events = [
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.create.change.chk1 ’,
‘app.record.edit.change.chk1 ’];
kintone.events.on(events, function(event) {
var record = event.record;
var chk1 = record[‘chk1’][‘value’];
if(chk1 == ‘その他’) {
kintone.app.record.setFieldShown(‘biko’, true);
} else {
kintone.app.record.setFieldShown(‘biko’, false);
}
return event;
});
})();
しかし、その他のチェックをしていないにも関わらず「備考欄」が
表示される状態です。
再度、ご教示をお願いできないでしょうか?
よろしくお願いいたします。
ko_ji
(ko_ji)
7
ぱっと見で気が付かなかったのですが、「“」や「'」が全角になってました。
「”」や「'」については半角で入力する必要があるので気を付けてください。
手元で以下のように修正したところ動作しているよう見えるので、
確認してもらえればと思います。
(function () {
"use strict";
var events = [
"app.record.create.show",
"app.record.edit.show",
"app.record.create.change.chk1",
"app.record.edit.change.chk1"];
kintone.events.on(events, function(event) {
var record = event.record;
var chk1 = record["chk1"]["value"];
if(chk1 == "その他") {
kintone.app.record.setFieldShown("biko", true);
} else {
kintone.app.record.setFieldShown("biko", false);
}
return event;
});
})();
なお、コミュニティでコードを記載する際のお作法や、
カスタマイズのデバック方法は以下のページで説明があるので、
今後のために確認しておくといいかもです。
https://community.cybozu.dev/guidelines
matu
8
ko_ji様
何度もご教示して頂きありがとうございます。
「その他」をチェックすると、「備考欄」が表示する仕様になりました。
感謝でいっぱいです。
今後は、全角/半角をはじめとしたコードを記載する際のお作法をきちんと
確認してご質問をさせて頂きます。
ありがとうございました。
「いいね!」 1
system
(system)
クローズされました:
9
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。