# JS APIでレコードの値を変更する処理で、実際に変更が反映されない。

**URL:** <https://community.cybozu.dev/t/topic/2125>\
**Category:** kintone 開発相談\
**Created:** [2015 年 9 月 9 日午前 3:58 UTC](https://community.cybozu.dev/t/topic/2125 "2015-09-09T03:58:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2166](https://avatars.discourse-cdn.com/v4/letter/l/96bed5/32.png) [@Legacy\_Account2166](https://community.cybozu.dev/u/Legacy_Account2166)\
**Post date:** [2015 年 9 月 9 日午前 3:58 UTC](https://community.cybozu.dev/t/topic/2125/1 "2015-09-09T03:58:55Z")

</div>

すみません、最近度々起こるこの問題について質問です。

JS APIで、レコードフィールドの値を動的に変更するという処理を何箇所か書いています。console.logで確認すると該当フィールドの値はしっかり変更されているのですが、実際の画面上は何も変更されていないことがあります。

例） if (フィールドA == undefined ){  
フィールドB = ‘りんご’;  
}else{  
フィールドB = ‘みかん’;  
}

やっている処理はこのようにシンプルなもので、  
フィールドAに入ってくる値に応じてフィールドBを変えるものです。

今回の解消方法としては、  
event handler（'app.record.create.submit,‘app.record.edit.submit’）をこの処理のために新たに作成しましたところ、値の反映が確認できました。  
※なお、同じイベントhandlerはjsファイルにすでに存在しており、そこに記載していた時は値の反映は確認できませんでした。

このような反映できない問題が、あるのですが  
原因がしりたいです。

今回の解決から推測すると、  
一つのイベントhandlerの処理の限界？みたいなものがあるのかな？と思いましたがいかがでしょう。

以前同じようなことが起こった際、は今回の解決法ではなく、何回か画面を更新したら解決したことがあります。通信？の関係なのでしょうか。不明です。

ご回答いただければ嬉しいです！

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1204](https://avatars.discourse-cdn.com/v4/letter/l/ba8739/32.png) [@Legacy\_Account1204](https://community.cybozu.dev/u/Legacy_Account1204)\
**Post date:** [2015 年 9 月 9 日午前 10:19 UTC](https://community.cybozu.dev/t/topic/2125/2 "2015-09-09T10:19:08Z")

</div>

こんにちは。  
はずしているかもしれませんが、submit系のイベントでよくありがちなのが、  
コールバックに非同期処理を書いてしまうケースです。  
コールバックに非同期処理を書くと、処理の終了をまたずにkintoneの画面遷移が行われるため、意図したとおりに動きません。

これを解消するにはkintone.promiseを使う必要があります。  
[https://cybozudev.zendesk.com/hc/ja/articles/204564604](https://cybozudev.zendesk.com/hc/ja/articles/204564604)
