# テーブル内にあるフィールドを条件によって入力の制限を行う

**URL:** <https://community.cybozu.dev/t/topic/3704>\
**Category:** kintone 開発相談\
**Created:** [2019 年 1 月 17 日午前 10:19 UTC](https://community.cybozu.dev/t/topic/3704 "2019-01-17T10:19:00Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account972](https://avatars.discourse-cdn.com/v4/letter/l/dfb087/32.png) [@Legacy\_Account972](https://community.cybozu.dev/u/Legacy_Account972)\
**Post date:** [2019 年 1 月 17 日午前 10:19 UTC](https://community.cybozu.dev/t/topic/3704/1 "2019-01-17T10:19:00Z")

</div>

テーブル設定をする前までは下記のコードで組んでいましたがテーブル設定にしたところうまくいきません。

テーブル設定にしても同じように動作する方法を御教授お願い致します。

kintone.events.on([‘app.record.create.show’,  
‘app.record.edit.show’,  
‘app.record.index.edit.show’,  
‘app.record.edit.change.A’,  
‘app.record.create.change.A’,  
‘app.record.index.edit.change.A’],  
function(event) {  
var record = event.record;

switch (record[‘A’][‘value’]){  
case “B”:  
record[‘E’][‘disabled’] = false;  
record[‘F’][‘disabled’] = true;  
break;  
case “C”:  
record[‘E’][‘disabled’] = false;  
record[‘F’][‘disabled’] = true;  
break;  
case “D”:  
record[‘E’][‘disabled’] = true;  
record[‘F’][‘disabled’] = false;  
break;  
default:  
record[‘E’][‘disabled’] = true;  
record[‘F’][‘disabled’] = true;  
break;  
}  
return event;  
});

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1804](https://avatars.discourse-cdn.com/v4/letter/l/ecd19e/32.png) [@Legacy\_Account1804](https://community.cybozu.dev/u/Legacy_Account1804)\
**Post date:** [2019 年 1 月 18 日午前 4:16 UTC](https://community.cybozu.dev/t/topic/3704/2 "2019-01-18T04:16:05Z")

</div>

以下記事を参考にして頂くとよいかと思います。

[https://developer.cybozu.io/hc/ja/community/posts/217841106-%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E7%B7%A8%E9%9B%86%E4%B8%8D%E5%8F%AF%E8%A8%AD%E5%AE%9A%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6](https://developer.cybozu.io/hc/ja/community/posts/217841106-%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E7%B7%A8%E9%9B%86%E4%B8%8D%E5%8F%AF%E8%A8%AD%E5%AE%9A%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)&nbsp;  
[https://developer.cybozu.io/hc/ja/community/posts/360037905692-%E3%82%B5%E3%83%96%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%83%87%E3%83%BC%E3%82%BF%E7%B7%A8%E9%9B%86%E4%B8%8D%E5%8F%AF%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%9F%E3%81%84](https://developer.cybozu.io/hc/ja/community/posts/360037905692-%E3%82%B5%E3%83%96%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%83%87%E3%83%BC%E3%82%BF%E7%B7%A8%E9%9B%86%E4%B8%8D%E5%8F%AF%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%9F%E3%81%84)&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account972](https://avatars.discourse-cdn.com/v4/letter/l/dfb087/32.png) [@Legacy\_Account972](https://community.cybozu.dev/u/Legacy_Account972)\
**Post date:** [2019 年 1 月 18 日午前 5:23 UTC](https://community.cybozu.dev/t/topic/3704/3 "2019-01-18T05:23:30Z")

</div>

回答ありがとうございます。

組みなおしてみたのですがうまくいかないのですがなにか原因をご教授して頂けると助かります。

&nbsp;

(function() {  
“use strict”;

var events = [‘app.record.edit.show’,  
‘app.record.create.change.Ａ’,  
‘app.record.edit.change.Ａ’];

kintone.events.on(events, function (event) {

var record = event.record;

if(record[‘Ａ’][‘value’] === “Ｂ”){

record.精算項目.value[1].value.Ｃ.disabled = true,  
record.精算項目.value[1].value.Ｂ.disabled = false;  
}else{

record.精算項目.value[1].value.Ｃ.disabled = false,  
record.精算項目.value[1].value.Ｂ.disabled = true;  
}  
return event;  
});

})();

&nbsp;

宜しくお願い致します。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1804](https://avatars.discourse-cdn.com/v4/letter/l/ecd19e/32.png) [@Legacy\_Account1804](https://community.cybozu.dev/u/Legacy_Account1804)\
**Post date:** [2019 年 1 月 18 日午前 6:13 UTC](https://community.cybozu.dev/t/topic/3704/4 "2019-01-18T06:13:39Z")

</div>

\> record.精算項目.value[1].value.Ｃ.disabled = true,

ですと、サブテーブルの２行目のみにしか反映されません。(1からではなく0から)  
全行で反映したいのであれば、if内を以下のように記述する必要があります。

```
for(var i in record.精算項目.value){
record.精算項目.value[i].value.Ｃ.disabled = true;
record.精算項目.value[i].value.Ｂ.disabled = false;
}

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account972](https://avatars.discourse-cdn.com/v4/letter/l/dfb087/32.png) [@Legacy\_Account972](https://community.cybozu.dev/u/Legacy_Account972)\
**Post date:** [2019 年 1 月 18 日午前 6:57 UTC](https://community.cybozu.dev/t/topic/3704/5 "2019-01-18T06:57:41Z")

</div>

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

自分が未熟なせいかやはりうまくいきません。

&nbsp;

今現在下記のようにプログラムを組んでいるのですが気になる点などあればご教授して頂けると幸いです。

&nbsp;

(function() {  
“use strict”;

//振替のイベントを取得  
var events = [‘app.record.create.show’,  
‘app.record.edit.show’,  
‘app.record.index.edit.show’,  
‘app.record.edit.change.区分’,  
‘app.record.create.change.区分’,  
‘app.record.index.edit.change.区分’,  
‘app.record.create.change.Table’,  
‘app.record.edit.change.Table’];

kintone.events.on(events, function (event) {

var record = event.record;

//区間の入力値チェック  
if(record[‘区間’][‘value’] === “往復”){

//区間が"往復"を選択している場合  
/\* record[‘片道’][‘disabled’] = true,  
record[‘往復’][‘disabled’] = false;\*/  
for(var i in record.input\_record.value){  
record.精算項目.value[i].value.片道.disabled = true;  
record.精算項目.value[i].value.往復.disabled = false;  
}  
}else{

//区間が"往路/復路"を選択している場合  
/\* record[‘片道’][‘disabled’] = false,  
record[‘往復’][‘disabled’] = true;\*/  
for(var n in record.input\_record.value){  
record.精算項目.value[n].value.片道.disabled = false;  
record.精算項目.value[n].value.往復.disabled = true;  
}

}  
return event;  
});

})();

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1804](https://avatars.discourse-cdn.com/v4/letter/l/ecd19e/32.png) [@Legacy\_Account1804](https://community.cybozu.dev/u/Legacy_Account1804)\
**Post date:** [2019 年 1 月 18 日午前 7:21 UTC](https://community.cybozu.dev/t/topic/3704/6 "2019-01-18T07:21:08Z")

</div>

forのrecord.input\_record.value は、record.精算項目.value だと思います。

うまくいかない、反応が無い、等の場合はエラーを吐いてる可能性があります。  
以下の記事を参考にしてエラーの内容が確認出来ると、ご自身でも間違っている箇所が分かるようになると思います。

[https://developer.cybozu.io/hc/ja/articles/207613916-%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84-%E3%81%9D%E3%82%93%E3%81%AA%E6%99%82%E3%81%AF%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%82%92%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-%E5%85%A5%E9%96%80%E7%B7%A8](https://developer.cybozu.io/hc/ja/articles/207613916-%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84-%E3%81%9D%E3%82%93%E3%81%AA%E6%99%82%E3%81%AF%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%82%92%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-%E5%85%A5%E9%96%80%E7%B7%A8)&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account972](https://avatars.discourse-cdn.com/v4/letter/l/dfb087/32.png) [@Legacy\_Account972](https://community.cybozu.dev/u/Legacy_Account972)\
**Post date:** [2019 年 1 月 18 日午前 9:11 UTC](https://community.cybozu.dev/t/topic/3704/7 "2019-01-18T09:11:37Z")

</div>

聞いてばかりではなく自分で理解していかないと上達しませんよね。

&nbsp;

いろいろとありがとう御座いました。

とても助かりました。
