# javascriptで計算させた値を条件分岐で利用させる方法について

**URL:** <https://community.cybozu.dev/t/topic/4548>\
**Category:** kintone 開発相談\
**Created:** [2019 年 11 月 9 日午前 1:21 UTC](https://community.cybozu.dev/t/topic/4548 "2019-11-09T01:21:14Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1306](https://avatars.discourse-cdn.com/v4/letter/l/8491ac/32.png) [@Legacy\_Account1306](https://community.cybozu.dev/u/Legacy_Account1306)\
**Post date:** [2019 年 11 月 9 日午前 1:21 UTC](https://community.cybozu.dev/t/topic/4548/1 "2019-11-09T01:21:14Z")

</div>

※本投稿ですが、貼り付けができなかったため手打ちしているので、入力間違いがあるかもしれません。

フォームブリッジもjavascriptも初心者です。

以下の(1)を実現したいです。

現状は(2)～(5)のとおりです。

よろしくお願いします。

(1)実現したいこと

jsで計算させた値によって表示させるフィールドを制御したい

(2)フィールド情報

kijunbi ⇒ 文字列で"20200331"を初期値にして非表示設定

year ⇒ ドロップダウンで"1983"や"2000"等の4桁の西暦の文字列

month ⇒ ドロップダウンで"1"や"12"等の月の文字列

day ⇒ ドロップダウンで"1"や"31"等の日の文字列

nenrei ⇒ ドロップダウンで"1"～"100"を設定し、編集不可、jsの計算結果の値にする。※フォームブリッジはドロップダウンとラジオボタン、チェックボックスしか条件分岐機能で利用できないためドロップダウンとした

sentaku1 ⇒ 条件分岐設定で表示・非表示を制御したいフィールド

(3)条件分岐設定

nenreiが偶数（例えば40）の場合にsentaku1が表示されるようにする

(4)動作結果

nenreiに基準日時点の年齢がjsで入力はされるが、条件分岐が動かない。（例えばnenrei1が40のjsの計算結果にしてもsentaku1は表示されない）

※nenreiを編集可にして手動でプルダウンで値を選択すれば条件分岐は正しく動く

&nbsp;

(5)js

//基準日のyymmddと、入力したyymmddの差を10000で割って小数点以下を切り落とせば基準日時点の年齢になることを利用

(function(){

“use strict”;

const kijunbi = ‘kijunbi’;

const year = ‘year’;

const month = ‘month’;

const day = ‘day’;

const nenrei = ‘nenrei’;

fb.events.fields[day].changed.push(function(state){

state.record[nenrei].value = Math.floor(((state.record[kijunbi].value - state.record[year].value \*10000 -state.record[month].value \* 100 - state.record[day].value /10000));

return state;

})

})();

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account795](https://avatars.discourse-cdn.com/v4/letter/l/94ad74/32.png) [@Legacy\_Account795](https://community.cybozu.dev/u/Legacy_Account795)\
**Post date:** [2019 年 11 月 20 日午前 6:39 UTC](https://community.cybozu.dev/t/topic/4548/2 "2019-11-20T06:39:58Z")

</div>

お世話になっております。

トヨクモの友利と申します。

fb上での条件分岐の設定を無くして、以下のコードで条件分岐させることで可能です。

```
(function() {
"use strict";

const nenrei = 'nenrei'
const sentaku1 = 'sentaku1'

fb.events.fields[nenrei].changed.push(function(state) {
if (state.record[nenrei].value % 2 === 0) {
state.fields.forEach((e, i) => {
if (e.code !== sentaku1) return;
state.fields[i].hide = false;
});
} else {
state.fields.forEach((e, i) => {
if (e.code !== sentaku1) return;
state.fields[i].hide = true;
});
}
})
})();

```
