# ボタン押下で、ルックアップフィールドクリアとグループフィールド表示を実現したい

**URL:** <https://community.cybozu.dev/t/topic/1459>\
**Category:** kintone 開発相談\
**Created:** [2023 年 3 月 17 日午前 4:38 UTC](https://community.cybozu.dev/t/topic/1459 "2023-03-17T04:38:17Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1856](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account1856](https://community.cybozu.dev/u/Legacy_Account1856)\
**Post date:** [2023 年 3 月 17 日午前 4:38 UTC](https://community.cybozu.dev/t/topic/1459/1 "2023-03-17T04:38:17Z")

</div>

レコード作成時、レコード編集時にボタンを押すと、「ルックアップフィールド」をクリアして、グループフィールドを表示させたいです。

グループフィールドの表示はできたのですが、「ルックアップフィールド」のクリアがうまくいきません…

ご教示いただけると幸いです。よろしくお願いします。

&nbsp;

```
(function() {
  "use strict";

  kintone.events.on(['app.record.create.show','app.record.edit.show'], function(event) {

  var Field_Button_0 = document.createElement('button');
      Field_Button_0.id = 'button_0';//スペースフィールド
      Field_Button_0.innerText = 'ルックアップフィールドをクリア&次の入力グループを表示';//ボタン名
      Field_Button_0.onclick = function () {//クリックした際の動き

        event.record['ルックアップフィールド'].lookup = 'CLEAR';
        
      kintone.app.record.setFieldShown("グループフィールド", true)
      kintone.app.record.setGroupFieldOpen("グループフィールド", true);
        
};
kintone.app.record.getSpaceElement('button_0').appendChild(Field_Button_0);

return event;
});
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1177](https://avatars.discourse-cdn.com/v4/letter/l/77aa72/32.png) [@Legacy\_Account1177](https://community.cybozu.dev/u/Legacy_Account1177)\
**Post date:** [2023 年 3 月 17 日午前 6:30 UTC](https://community.cybozu.dev/t/topic/1459/2 "2023-03-17T06:30:58Z")

</div>

```
    Field_Button_0.onclick = function () {//クリックした際の動き
        event.record['ルックアップフィールド'].lookup = 'CLEAR';
        
        kintone.app.record.setFieldShown("グループフィールド", true)
      kintone.app.record.setGroupFieldOpen("グループフィールド", true);
};

```

↓

```
      Field_Button_0.onclick = function () {//クリックした際の動き
let recordData = kintone.app.record.get(), rec = recordData.record;
      rec['ルックアップフィールド'].lookup = 'CLEAR';
kintone.app.record.set(recordData);       

        kintone.app.record.setFieldShown("グループフィールド", true)
        kintone.app.record.setGroupFieldOpen("グループフィールド", true);
     };

```

[レコードの値を取得する](https://cybozu.dev/ja/kintone/docs/js-api/record/get-record/)と[レコードに値をセットする](https://cybozu.dev/ja/kintone/docs/js-api/record/set-record-value/)が必要です。

function(event)の中でのevent.recordはあくまでもcreate.showやedit.show（レコードを開いた瞬間）でのレコードになります。「ボタンをレコードに設置する処理」はレコードを開いた瞬間に行われているのでevent.recordを参照することができますが、「ボタンをクリックした時に行われる処理（ボタンをクリックする時）」はレコードを開いた瞬間とは別のタイミングで行われるため、event.recordを参照できないと覚えると良いでしょう。

kintone.app.record.setFieldShown()やkintone.app.reocrd.setGroupFieldOpen()だけ動作するのは、これらはevent.recordを参照していないためです。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1856](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account1856](https://community.cybozu.dev/u/Legacy_Account1856)\
**Post date:** [2023 年 3 月 18 日午後 2:02 UTC](https://community.cybozu.dev/t/topic/1459/3 "2023-03-18T14:02:33Z")

</div>

mls-hashimotoさま

いつもありがとうございます！

できました！！

kintone.app.record.get()とkintone.app.record.set(record)を使いこなせるように頑張ります！

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2023 年 10 月 6 日午前 6:15 UTC](https://community.cybozu.dev/t/topic/1459/4 "2023-10-06T06:15:08Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
