# 競合してjsが正常に動作しない

**URL:** <https://community.cybozu.dev/t/topic/1586>\
**Category:** kintone 開発相談\
**Created:** [2023 年 5 月 16 日午前 6:39 UTC](https://community.cybozu.dev/t/topic/1586 "2023-05-16T06:39:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account29](https://avatars.discourse-cdn.com/v4/letter/l/b3f665/32.png) [@Legacy\_Account29](https://community.cybozu.dev/u/Legacy_Account29)\
**Post date:** [2023 年 5 月 16 日午前 6:39 UTC](https://community.cybozu.dev/t/topic/1586/1 "2023-05-16T06:39:49Z")

</div>

□問題点

①番の保存回数を可変させるjsが単体だと動くが、複数登録したｱﾌﾟﾘに入れるとedit.showの時に動かない。

②番を削除したときに動いたので、競合していると思うのですが、原因特定に至りませんでした。

お力添え頂けますと幸いです。

```
①
(() => {

  'use strict';

  // ﾚｺｰﾄﾞ再利用ﾎﾞﾀﾝで新規or再利用画面表示後、適用する

  kintone.events.on('app.record.create.show', (event) => {

    event.record["保存回数"]["value"] = 1;//レコード追加(新規)の場合は保存回数を1回に

    return event;

  });

})();

(() => {

  'use strict';

  kintone.events.on('app.record.edit.show', (event) => {

    let field_save = event.record["保存回数"]["value"];

    if (!field_save) {

      event.record["保存回数"]["value"] = 2;//編集画面で空白の場合は保存回数を2回

    }

    else {

      let counter = (event.record["保存回数"]["value"]) ? parseInt(event.record["保存回数"]["value"]) : 0; //三項演算子(条件式?trueの場合の処理:falseの場合の処理)

      counter++;

      event.record["保存回数"]["value"] = counter;

    }

    return event;

  });

})();

②
(function () {

    "use strict";

    kintone.events.on(['app.record.edit.show', 'app.record.edit.change.契約明細TB', 'app.record.edit.change.発注明細TB'], function (event) { // ﾚｺｰﾄﾞ編集画面が表示された時、ﾃｰﾌﾞﾙが操作された時

        let a;

        const loginuser = kintone.getLoginUser().name;

      if (loginuser !== "〇〇〇") { //ﾛｸﾞｲﾝﾕｰｻﾞｰが〇〇〇さんの時を除く

            for (a = 0; a < 100; a++) {

                document.getElementsByClassName('remove-row-image-gaia')[a].style.display = 'none'; //ﾃｰﾌﾞﾙの削除ﾎﾞﾀﾝを非表示に

            }

        }

        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 年 5 月 17 日午前 5:56 UTC](https://community.cybozu.dev/t/topic/1586/2 "2023-05-17T05:56:20Z")

</div>

```
             document.getElementsByClassName('remove-row-image-gaia')[a].style.display = 'none';

```

競合ではなく、ここでエラーになってるためかと思います（この部分がエラーで停止するため、同様にedit.showのカスタマイズが停止します）。  
ループが100回実行するものになっているので、仮にサブテーブルが必ず100行以上なら問題なく動くと思いますが、そうでない場合、例として10行のサブテーブルの11行目にある削除ボタン（存在しないもの）のスタイルにアクセスすることになり、エラーで動作が停止します。

ループの回数を工夫する（要素と同じ数のループを実行）、ループ中に続きの処理を行うか判定させる（要素が存在するか判定）等の工夫が必要です。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account29](https://avatars.discourse-cdn.com/v4/letter/l/b3f665/32.png) [@Legacy\_Account29](https://community.cybozu.dev/u/Legacy_Account29)\
**Post date:** [2023 年 5 月 19 日午前 2:41 UTC](https://community.cybozu.dev/t/topic/1586/3 "2023-05-19T02:41:40Z")

</div>

[mls-hashimoto](https://community.cybozu.dev/hc/ja/profiles/385013133091-mls-hashimoto)様

アドバイスありがとうございます。

試してみます。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account29](https://avatars.discourse-cdn.com/v4/letter/l/b3f665/32.png) [@Legacy\_Account29](https://community.cybozu.dev/u/Legacy_Account29)\
**Post date:** [2023 年 6 月 2 日午前 4:17 UTC](https://community.cybozu.dev/t/topic/1586/4 "2023-06-02T04:17:41Z")

</div>

ループ処理を適正な回数繰り返すよう修正し、正常に動作するように

なりました。

---

<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 年 9 月 28 日午前 8:14 UTC](https://community.cybozu.dev/t/topic/1586/5 "2023-09-28T08:14:54Z")

</div>

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