# ユーザー選択フィールドと連動して値を表示する文字列フィールドの値を空にしたい。

**URL:** https://community.cybozu.dev/t/topic/4927
**Category:** kintone 開発相談
**Created:** [2020 年 2 月 21 日午前 3:40 UTC](https://community.cybozu.dev/t/topic/4927 "2020-02-21T03:40:03Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Legacy\_Account1041](https://avatars.discourse-cdn.com/v4/letter/l/3ab097/32.png) [@Legacy\_Account1041](https://community.cybozu.dev/u/Legacy_Account1041)
#### Post date: [2020 年 2 月 21 日午前 3:40 UTC](https://community.cybozu.dev/t/topic/4927/1 "2020-02-21T03:40:03Z")

</div>

下記のカスタマイズで、ユーザー選択フィールド（承認者）でユーザを選択した際、別な文字列フィールド（役職と承認者所属）に値を入れておりますが、  
ユーザー選択を解除した（空にした）場合、文字列フィールドの値もクリアしたいのですがフィールドの値が空になってくれません。  
どなたか実現方法についてアドバイス頂けると助かります。

```
(function() {
"use strict";
kintone.events.on(["app.record.create.change.承認者","app.record.edit.change.承認者"], function(event) {
var userCode = event.record.承認者.value[0].code;
kintone.api(kintone.api.url('/v1/user/organizations'), 'GET', {code: userCode}).then(function(resp) {

if (resp.organizationTitles.length > 0) {
var position = resp.organizationTitles[0].title.name;
var syozoku = resp.organizationTitles[0].organization.name;
var record = kintone.app.record.get();
record.record.役職.value = position;
record.record.承認者所属.value = syozoku;
kintone.app.record.set(record);
}else{
record.record.役職.value = '';
record.record.承認者所属.value = '';
}
return event;
});
});
})();

```

&nbsp;

---

<div class="post-metadata">

### Author: ![Legacy\_Account1804](https://avatars.discourse-cdn.com/v4/letter/l/ecd19e/32.png) [@Legacy\_Account1804](https://community.cybozu.dev/u/Legacy_Account1804)
#### Post date: [2020 年 2 月 25 日午前 1:45 UTC](https://community.cybozu.dev/t/topic/4927/2 "2020-02-25T01:45:16Z")

</div>

こんにちは。

コードをパッと見ただけで動作確認はしてないのですが、if内の動作が問題ないようでしたら、

var record = kintone.app.record.get();

と

kintone.app.record.set(record);

↑をelseの中にも入れる必要があると思います。

---

<div class="post-metadata">

### Author: ![Legacy\_Account1041](https://avatars.discourse-cdn.com/v4/letter/l/3ab097/32.png) [@Legacy\_Account1041](https://community.cybozu.dev/u/Legacy_Account1041)
#### Post date: [2020 年 2 月 25 日午前 4:48 UTC](https://community.cybozu.dev/t/topic/4927/3 "2020-02-25T04:48:55Z")

</div>

FM様

お世話になっております。ご指摘、有難うございました。  
確かに var record = kintone.app.record.get(); と kintone.app.record.set(record); が漏れておりました。

var record = kintone.app.record.get();  
と  
kintone.app.record.set(record);

を追加してみたのですが、ユーザ選択肢の値が空になった時点でcodeが取得できなくなり elseまで処理が進まない様で、テキストフィールド（役職と承認者所属）の値は空になってくれませんでした。

※ユーザ選択フィールドの値を空にした時点で、ブラウザ（開発者ツール）のコンソール上では「未定義または NULL 参照のプロパティ ‘code’ は取得できません」というエラーが表示されています。

そこで下記の様にカスタマイズした所、ユーザ選択フィールドの値を空にした時点で、テキストフィールド（役職と承認者所属）の値は空になってくれました。

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

kintone.events.on(["app.record.create.change.承認者","app.record.edit.change.承認者"], function(event) {

if (event.record.承認者.value[0] == undefined) {
var record = event.record;
record['役職']['value'] = '';
record['承認者所属']['value'] = '';
}else{
var userCode = event.record.承認者.value[0].code;
kintone.api(kintone.api.url('/v1/user/organizations'), 'GET', {code: userCode}).then(function(resp) {
if (resp.organizationTitles.length > 0) {
var position = resp.organizationTitles[0].title.name;
var syozoku = resp.organizationTitles[0].organization.name;
var record = kintone.app.record.get();
record.record.役職.value = position;
record.record.承認者所属.value = syozoku;
kintone.app.record.set(record);
}
return event;
});
}
return event;
});
})();

```

取り急ぎ期待していた挙動にはなったのですが、もっと良い方法がありましたらアドバイス頂けると助かります。

---

<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: [2025 年 2 月 15 日午前 9:23 UTC](https://community.cybozu.dev/t/topic/4927/4 "2025-02-15T09:23:39Z")

</div>

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