# サブテーブルの追加削除を制限したい

**URL:** <https://community.cybozu.dev/t/topic/543>\
**Category:** kintone 開発相談\
**Created:** [2017 年 9 月 15 日午前 12:52 UTC](https://community.cybozu.dev/t/topic/543 "2017-09-15T00:52:34Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1777](https://avatars.discourse-cdn.com/v4/letter/l/ccd318/32.png) [@Legacy\_Account1777](https://community.cybozu.dev/u/Legacy_Account1777)\
**Post date:** [2017 年 9 月 15 日午前 12:52 UTC](https://community.cybozu.dev/t/topic/543/1 "2017-09-15T00:52:34Z")

</div>

レコード内に設置しているサブテーブルの横にある「+」「-」の表記を消すもしくは、使えなくする方法を探しています。

record[“サブテーブル名”].disabled = true;

上記の記述だと追加削除はできてしまいます。

&nbsp;

皆様のお知恵をお借りしたく、どうぞよろしくお願い致します。

&nbsp;

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1740](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1740](https://community.cybozu.dev/u/Legacy_Account1740)\
**Post date:** [2017 年 9 月 15 日午前 3:09 UTC](https://community.cybozu.dev/t/topic/543/2 "2017-09-15T03:09:32Z")

</div>

かめ様

お世話になっております。  
cstapの江田と申します。

下記のコードでボタンを非表示にできます。  
ただし、DOM要素のクラス名は予告なく変更される可能性があるので注意が必要です。

```
(function() {
"use strict";
kintone.events.on(['app.record.create.show','app.record.edit.show'], function(event) {
[].forEach.call(document.getElementsByClassName("subtable-operation-gaia"), function(button){
button.style.display = 'none';
});
});
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1777](https://avatars.discourse-cdn.com/v4/letter/l/ccd318/32.png) [@Legacy\_Account1777](https://community.cybozu.dev/u/Legacy_Account1777)\
**Post date:** [2017 年 9 月 15 日午前 3:50 UTC](https://community.cybozu.dev/t/topic/543/3 "2017-09-15T03:50:50Z")

</div>

sctap江田様

ご回答ありがとうございます。実現できました。とても助かりました。

追加で質問なのですが、こちらは1レコードに複数サブテーブルがあると全ての追加や削除ができなくなりますよね。

個別に指定は可能なのでしょうか？

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1740](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1740](https://community.cybozu.dev/u/Legacy_Account1740)\
**Post date:** [2017 年 9 月 15 日午前 4:44 UTC](https://community.cybozu.dev/t/topic/543/4 "2017-09-15T04:44:53Z")

</div>

かめ様

以下のようなコードで実現できるかと思います。

```
(function() {
"use strict";
var tableNo = 0; //ボタンを消したいテーブルの番号。(0始まり)
kintone.events.on(['app.record.create.show','app.record.edit.show'], function(event) {
[].forEach.call(document.getElementsByClassName("subtable-gaia")[tableNo].getElementsByClassName("subtable-operation-gaia"), function(button){
button.style.display = 'none';
});
});
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1777](https://avatars.discourse-cdn.com/v4/letter/l/ccd318/32.png) [@Legacy\_Account1777](https://community.cybozu.dev/u/Legacy_Account1777)\
**Post date:** [2017 年 9 月 15 日午前 5:05 UTC](https://community.cybozu.dev/t/topic/543/5 "2017-09-15T05:05:52Z")

</div>

江田様

動作確認できました。重ね重ねありがとうございました。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2032](https://avatars.discourse-cdn.com/v4/letter/l/bc8723/32.png) [@Legacy\_Account2032](https://community.cybozu.dev/u/Legacy_Account2032)\
**Post date:** [2017 年 12 月 16 日午前 3:17 UTC](https://community.cybozu.dev/t/topic/543/6 "2017-12-16T03:17:41Z")

</div>

横から失礼致します。

江田様が提示されている方法は、モバイル版でも動作しますでしょうか。

イベントの指定部分を以下のとおりに変更したのですが、スマートフォンのアプリでは

追加と削除のボタンが表示されたままでした。

```
kintone.events.on([' **mobile.** app.record.create.show',' **mobile.** app.record.edit.show'], function(event) {

ご教示の程、よろしくお願い致します。

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1777](https://avatars.discourse-cdn.com/v4/letter/l/ccd318/32.png) [@Legacy\_Account1777](https://community.cybozu.dev/u/Legacy_Account1777)\
**Post date:** [2017 年 12 月 17 日午前 4:08 UTC](https://community.cybozu.dev/t/topic/543/7 "2017-12-17T04:08:41Z")

</div>

kintone初心者さま

江田様のソースの

```
kintone.events.on([' **mobile.** app.record.create.show',' **mobile.** app.record.edit.show'], function(event) {

```

を変更しただけではモバイル端末では追加＆削除のボタンは表示されたままです。

下記のように携帯のDOMに合わせたコードにすると可能かと思います。

```
[].forEach.call(document.getElementsByClassName("subtable-row-buttons-gaia"), function(button){
button.style.display = 'none';
});

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2032](https://avatars.discourse-cdn.com/v4/letter/l/bc8723/32.png) [@Legacy\_Account2032](https://community.cybozu.dev/u/Legacy_Account2032)\
**Post date:** [2017 年 12 月 17 日午後 11:42 UTC](https://community.cybozu.dev/t/topic/543/8 "2017-12-17T23:42:55Z")

</div>

かめ様

&nbsp;

ご返信ありがとうございます。

DOMがPC用と携帯用で別物になるのですね。

ご教示のとおり、携帯のDOMに変更したところ

スマートフォンで追加＆削除のボタンを非表示にすることができました。

大変勉強になりました。本当にありがとうございました！

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2016](https://avatars.discourse-cdn.com/v4/letter/l/5f8ce5/32.png) [@Legacy\_Account2016](https://community.cybozu.dev/u/Legacy_Account2016)\
**Post date:** [2018 年 4 月 19 日午前 3:05 UTC](https://community.cybozu.dev/t/topic/543/9 "2018-04-19T03:05:14Z")

</div>

```
ボタンを消したいテーブルの番号を調べる方法をご教示いただけないでしょうか？

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1777](https://avatars.discourse-cdn.com/v4/letter/l/ccd318/32.png) [@Legacy\_Account1777](https://community.cybozu.dev/u/Legacy_Account1777)\
**Post date:** [2018 年 4 月 20 日午後 12:57 UTC](https://community.cybozu.dev/t/topic/543/10 "2018-04-20T12:57:54Z")

</div>

yamatami様

テーブル番号は、該当レコードの上から設置されている順番に0,1,2,3…と設定されています。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2016](https://avatars.discourse-cdn.com/v4/letter/l/5f8ce5/32.png) [@Legacy\_Account2016](https://community.cybozu.dev/u/Legacy_Account2016)\
**Post date:** [2018 年 4 月 23 日午前 4:26 UTC](https://community.cybozu.dev/t/topic/543/11 "2018-04-23T04:26:20Z")

</div>

かめ様

ありがとうございます。

アプリの動作テストで実行したときに、+、マイナスボタンが表示されたままだったのでなやんでいたのですが、

アプリを更新してテストしてみたところ、非表示になっていました。

ありがとうございました。

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1561](https://avatars.discourse-cdn.com/v4/letter/l/a87d85/32.png) [@Legacy\_Account1561](https://community.cybozu.dev/u/Legacy_Account1561)\
**Post date:** [2021 年 10 月 5 日午前 7:37 UTC](https://community.cybozu.dev/t/topic/543/12 "2021-10-05T07:37:57Z")

</div>

個別のテーブルを消す場合に、テーブルの番号を入れている例が↑にありますが、サブテーブルの番号がクラス名subtable-gaiaで検索すると、その隣に「subtable-XXXXXXXX（XXXは数字）」というのがあるので、これを利用して、次のように書くといくつもサブテーブルがあるときに指定できます。

```
(function () {
"use strict";
kintone.events.on(['app.record.create.show', 'app.record.edit.show'], function (event) {
[].forEach.call(document.getElementsByClassName("subtable-XXXXXXXX")[0].getElementsByClassName("subtable-operation-gaia"), function (button) {
button.style.display = 'none';
});
});
})();

```

---

<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:** [2024 年 9 月 4 日午前 6:54 UTC](https://community.cybozu.dev/t/topic/543/13 "2024-09-04T06:54:21Z")

</div>

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