新規投稿
フォローする

2020/01/12のアップデートで、changeハンドラの挙動が変わってしまいました

先ほど公式の問い合わせフォームからも送信しましたが、
同じ内容をこちらにも投稿しておきます。

1/12の計算式のアップデートによって、
JavaScript APIのcreate.change / edit.changeハンドラの挙動が変わってしまったようです。
開発メンバーの方々、至急調査をお願いしたく。

条件によっては、
レコード作成画面、レコード編集画面を表示した瞬間に、
何も値を変更していないのにchangeイベントが発火して、
JSカスタマイズが意図しない挙動になってしまいます。

これはAPIのバグではないかと思うので、調査をお願いできないでしょうか。
私の方で確認した再現条件は、以下です。

・文字列フィールド「string1」「calc」が存在するアプリ
・calcフィールドを計算式にして「"title: " & string1」のように「固定値とフィールドを連結」する設定
・create.change.calcまたはedit.change.calcイベントハンドラで、計算式フィールドの変更イベントを監視
・create.showまたはedit.showイベントハンドラでreturn eventする(eventオブジェクトの変更は無関係)
・以下のように「計算対象フィールドがブランクなedit画面」を出すと、無条件でchange.calcイベントが発火してしまう
 ーレコード新規作成画面を表示
 ーstring1フィールドが空のレコード編集画面を表示
・index.edit.changeイベントではこの問題は起こらない


```js
;(() => {
'use strict'

kintone.events.on(['app.record.create.show', 'app.record.edit.show', 'app.record.index.edit.show'], event => {
return event
})
kintone.events.on(['app.record.create.change.calc', 'app.record.edit.change.calc', 'app.record.index.edit.change.calc'], event => {
alert('changeイベント発火')
})
})()
```

 

5

3件のコメント

Avatar
赤座 久樹

再現用のアプリテンプレート作りました。
こちらからダウンロードできます。

意外とこんな処理あるんじゃないかと思っていて、
各所への影響が心配でしたので、フォーラムに投稿させてもらいました。

よかったら皆さん、試してみてください。
https://drive.google.com/file/d/1eKKHoCw-9enmPk5Req7M0F40Xbk-4HxS/view?usp=sharing

3
Avatar
cybozu Development team

赤座様

cybozu developer network 運営局です。

ご指摘いただいた内容について、本日2020/01/21 にメンテナンスを行い、不具合を解消いたしました。

不具合の詳細は、以下をご参照ください。
https://developer.cybozu.io/hc/ja/articles/360037460171/comments/360005202691

よろしくお願いいたします。

1
Avatar
赤座 久樹

修正されていること確認できました。

対応ありがとうございました!

1
サインインしてコメントを残してください。