キントーンカスタマイズを行っているJavascript初心者です。
あるチェックボックスのチェック状態を判定し、別のチェックボックス配列をクリアする
ロジックを作りました。
kintone.events.on([‘app.record.create.change.初期排出10以上’], function(event) {
一部略
let check_0 = record[eve_type][‘value’];
if (check_0.indexOf(‘チェック10+’) > -1) {
record[eve_type3][‘value’] = [,];
return event;
}
このロジックは、PCでは正しく動くのですが、同じロジックでモバイル版のスクリプト
をアップロードするとlet check_0 = record[eve_type][‘value’]; の部分がエラーになります。
エラー表示は以下です。
Uncaught TypeError: Cannot read properties of undefined (reading ‘value’)
デバッグ環境はどちらも、Chromeです。どなたか、このエラーを解決する方法をご存じ
でしょうか?お手数ですがよろしくお願いします。
山本 隆さん
モバイル用に書いたコードでは、モバイル用のフィールド値変更時イベントを使用されていますでしょうか…?
kintone のイベントはPC用とモバイル用が分かれているものがあり、
上記をコードをモバイル実装する際には、以下のモバイル用イベントを適用する必要があります。
mobile.app.record.create.change.<フィールドコード>
ponyoさん
返信が遅れまして、大変失礼しました。コメントありがとうございます。
>mobile.app.record.create.change.<フィールドコード>
上記のイベントは適用しています。ただし、複数のフィールドで同じイベントを発生させるために、下記のようにカンマで区切って設定しています。もう少し調べてみようと思います。ありがとうございました。
kintone.events.on([‘mobile.app.record.create.change.初期排出10以上’,‘mobile.app.record.create.change.捨てショット10以上’,‘mobile.app.record.create.change.異物10以上’,‘mobile.app.record.create.change.シルバー10以上’,‘mobile.app.record.create.change.バリ10以上’,‘mobile.app.record.create.change.ショート10以上’,‘mobile.app.record.create.change.キズ10以上’,‘mobile.app.record.create.change.ヒケ10以上’,‘mobile.app.record.create.change.ソリ10以上’,‘mobile.app.record.create.change.ウェルド10以上’,‘mobile.app.record.create.change.油10以上’,‘mobile.app.record.create.change.ヤケ10以上’,‘mobile.app.record.create.change.ハッカ10以上’,‘mobile.app.record.create.change.作業ミス10以上’], function(event) {
ようやく分かりました。今回、ソースコードのサンプル以外のところで、下記のようにイベントタイプを編集するロジックがありました。今回、moblile の接頭語を適用した影響で、切り出す文字列の位置がPC版と異なっていることが判明しました。
let str = event.type;
let eve_type = str.substr( 25 );
ですので、mobile.(7文字)を加味して、25→32(+7)としたところ、意図した動作を実現できました。
この度は、見直しのきっかけを与えていただき、ありがとうございました。