# ラジオボタンの選択と自動入力

**URL:** <https://community.cybozu.dev/t/topic/4064>\
**Category:** kintone 開発相談\
**Created:** [2019 年 6 月 5 日午前 5:23 UTC](https://community.cybozu.dev/t/topic/4064 "2019-06-05T05:23:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account803](https://avatars.discourse-cdn.com/v4/letter/l/34f0e0/32.png) [@Legacy\_Account803](https://community.cybozu.dev/u/Legacy_Account803)\
**Post date:** [2019 年 6 月 5 日午前 5:23 UTC](https://community.cybozu.dev/t/topic/4064/1 "2019-06-05T05:23:34Z")

</div>

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

「終了日（日付フィールド）」に日付を入力すると、自動で「進捗状況（ラジオボタン）」が”完了済”になるように変更しようと思いコードを書きました。

「進捗管理」のラジオボタンの項目は、”未着手”と”作業中”と”完了済”です。

「終了日」に日付を入力すると、「進捗状況」を自動で”完了済”に、空欄の場合はユーザーが選択した項目にしたいです。

以下のコードだと、「終了日」が空欄で、”作業中”か”未着手”を選択しても、勝手に”完了済”になってしまいます。

ご教示いただけないでしょか。

```
(function() {
   "use strict";
   var events = ['app.record.edit.submit','app.record.create.submit','app.record.index.edit.submit',
                 'app.record.create.change.進捗状況','app.record.edit.進捗状況',
                 'app.record.create.change.終了日','app.record.edit.終了日'];
   kintone.events.on(events, function(event) {
       var record = event.record;
       //要素取得
       var process = record['進捗状況']['value'];
       var endday = record['終了日']['value'];
      
       if (record['終了日']['value'] !== "") {
           process = "完了済";
       }else {
           process = "";
       }
      
       record['進捗状況']['value'] = process;  
       
           return event;
          
   });
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account870](https://avatars.discourse-cdn.com/v4/letter/l/cc9497/32.png) [@Legacy\_Account870](https://community.cybozu.dev/u/Legacy_Account870)\
**Post date:** [2019 年 6 月 5 日午前 5:54 UTC](https://community.cybozu.dev/t/topic/4064/2 "2019-06-05T05:54:45Z")

</div>

natsuki さん

こんにちは。ひよこです。

「終了日」が空欄のときの record[‘終了日’][‘value’] は undefined が返ってきます。  
(console.log(endday); して開発者ツールのコンソールで確認してみてください）  
undefined は ‘’ ではないため、

```
if (record['終了日']['value'] !== "") {
  process = "完了済";
}

```

に必ず当てはまります。  
また、process = ‘’ とすると、終了日が空の場合は必ず初期化されてしまう（＝未着手）になるので、選択された値を使ったほうが良いと思います。

こうやって書くと、期待通りの動きになるのでは？と思うのですが、いかがでしょうか。

```
var process = record['進捗状況']['value'];
var endday = record['終了日']['value'];
if (record['終了日']['value']) { // 値が設定されている場合
  process = "完了済";
}
record['進捗状況']['value'] = process;

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account803](https://avatars.discourse-cdn.com/v4/letter/l/34f0e0/32.png) [@Legacy\_Account803](https://community.cybozu.dev/u/Legacy_Account803)\
**Post date:** [2019 年 6 月 5 日午前 7:13 UTC](https://community.cybozu.dev/t/topic/4064/3 "2019-06-05T07:13:58Z")

</div>

ひよこ 様

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

早速教えていただいたコードを試したところ、無事期待通りの動作をしました。

非常に助かりました。ありがとうございます。
