kintone初学者です。初質問です。
現在顧客管理アプリを作成中です。
ドロップダウンのフィールド名:事業種別[個人・法人]で法人を選択した際に個人名のフィールドを非表示にしたいです。
各フィールドコードはそのままですが
事業種別→事業種別
法人名→法人名
個人名→個人名
となっております。
現在検索しながら下記コード入力しておりますが正しく表示されません。
(() => {
'use strict';
const events = ['app.record.detail.show',
'app.record.create.show',
'app.record.create.change.事業種別',
'app.record.create.change.個人名',
'app.record.edit.show',
'app.record.edit.change.事業種別',
'app.record.edit.change.個人名',];
kintone.events.on(events, (event) => {
const record = event.record;
// lengthプロパティが違う気がするのですが・・・
const 事業種別 = record.事業種別.value;
if (事業種別.length === 法人) {
kintone.app.record.setFieldShown('個人名', false);
}
});
})();
わかりにくい文で申し訳ございません。
4件のコメント
ここを
このように変更して下さい。changeイベントも含めるのであれば、条件を満たさない場合にフィールドを表示する処理も追加した方が良いでしょう(しないと一度法人を選択した後に他のものを選択しても表示されなくなります)。
定数や変数に日本語を使うのはあまりおすすめできません。またlengthは長さを参照するものなので、提示されたコードだと事業種別の文字の長さを数えていることになります(また、ドロップダウンが何も選択されていない場合はlengthは参照できずエラーになります)。比較する「法人」は文字列なのでシングルクォーテーションまたはダブルクォーテーションで囲む必要があります。
hashimoto様
コメントありがとうございます!細かいところも教えてくださり感謝しています。まだまだだ勉強が足りないと痛感致しました。
下記のように変更してみましたがうまく動きませんでした。どこがダメなのかわからないですが調べてチャレンジしていきます!
(() => {
'use strict';
const events = ['app.record.detail.show',
'app.record.create.show',
'app.record.create.change.事業種別',
'app.record.create.change.個人名',
'app.record.edit.show',
'app.record.edit.change.事業種別',
'app.record.edit.change.個人名',];
kintone.events.on(events, (event) => {
if (record['事業種別'].value === '法人') {
kintone.app.record.setFieldShown('個人名', false);
} else {
kintone.app.record.setFieldShown('個人名', true);
}
return event;
});
})();
おもちさま
こちらは残して下さい。または
というように記載しても問題ありません。
hashimoto様
出来ました!これからからもっと勉強していっていろんなこと出来るように頑張ります!本当にありがとうございました!