# スマートフォン用アプリのchangeイベントで日付が入力されず空欄になってしまう

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

<div class="post-metadata">

**Author:** ![Legacy\_Account728](https://avatars.discourse-cdn.com/v4/letter/l/ccd318/32.png) [@Legacy\_Account728](https://community.cybozu.dev/u/Legacy_Account728)\
**Post date:** [2018 年 6 月 27 日午前 3:23 UTC](https://community.cybozu.dev/t/topic/3165/1 "2018-06-27T03:23:02Z")

</div>

いつもお世話になっております。スマートフォン用アプリのchangeイベントについて、  
以下のJSを適用すると、日付フィールド(作成日・受領日)の値を入力したときに空欄のまま値が入りません。  
（年・月・日すべてに値が入っている場合には入力できるが1つでも空欄があると値を入力できない。PC用では入力できる）  
こちらの解決方法を教えていただけますと幸いです。よろしくお願いいたします。

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

// 日付が入っているフィールドによって状況フィールドのテキストを変更
kintone.events.on([ 'mobile.app.record.create.change.作成日',
'mobile.app.record.edit.change.作成日',
'mobile.app.record.create.change.受領日',
'mobile.app.record.edit.change.受領日',
],
function(event){
/* 定義 */
const record = event.record;
const statusText = new Array(
[record['作成日'].value,"作成済"],
[record['受領日'].value,"受領済"],
);
/* 処理 */
for (var i = 0; i < statusText.length; i++) {
// 各項目に日付が入っているかチェック
if(statusText[i][0] !== undefined && statusText[i][0] !== null && statusText[i][0] !== ""){
// 日付が入っていたら該当するテキストをセット
record['状況'].value = statusText[i][1];
return event;
}
else{
// 日付がどこにもなければ未対応をセット
record['状況'].value = "未対応";
}
}
return event;
});

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1821](https://avatars.discourse-cdn.com/v4/letter/l/d07c76/32.png) [@Legacy\_Account1821](https://community.cybozu.dev/u/Legacy_Account1821)\
**Post date:** [2018 年 6 月 27 日午前 3:28 UTC](https://community.cybozu.dev/t/topic/3165/2 "2018-06-27T03:28:19Z")

</div>

矢形さん、こんにちは。

プロジェクト・アスノートの松田です。

モバイルビューでの日付フィールドのchangeイベントは、

年・月・日それぞれ入力したタイミングでイベントが発火してしまうため、一部だけではデータ形式エラーになってしまいます。

これはたぶんモバイルの日付入力のUIの仕様なのだと思います。

&nbsp;

実際行った対応としては、モバイルでの使用ケースや見え方（一覧性があまりない）を考えると、特にchangeイベントでの値更新をしなくてもいいのかなとあきらめて、保存実行前イベントで処理するようにしています。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account728](https://avatars.discourse-cdn.com/v4/letter/l/ccd318/32.png) [@Legacy\_Account728](https://community.cybozu.dev/u/Legacy_Account728)\
**Post date:** [2018 年 6 月 27 日午前 3:54 UTC](https://community.cybozu.dev/t/topic/3165/3 "2018-06-27T03:54:01Z")

</div>

松田さま

お世話になります。矢形です。  
おっしゃる通り、changeイベントから保存実行前イベントで対応するようにしたところうまくいきました。  
さっそくのご回答ありがとうございました。大変助かりました。
