# スマートフォン用アプリでの日付入力とスクロール

**URL:** <https://community.cybozu.dev/t/topic/2302>\
**Category:** kintone 開発相談\
**Created:** [2016 年 1 月 25 日午前 6:16 UTC](https://community.cybozu.dev/t/topic/2302 "2016-01-25T06:16:36Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2085](https://avatars.discourse-cdn.com/v4/letter/l/c6cbf5/32.png) [@Legacy\_Account2085](https://community.cybozu.dev/u/Legacy_Account2085)\
**Post date:** [2016 年 1 月 25 日午前 6:16 UTC](https://community.cybozu.dev/t/topic/2302/1 "2016-01-25T06:16:36Z")

</div>

日付フィールドの初期値として、「次の月の25日」を設定するJavascriptカスタマイズをしています。  
そこで  
kintone.events.on([‘app.record.create.show’, ‘app.record.edit.show’],function(event){  
var record = event.record;  
var date = new Date();  
date.setDate(25);  
date.setMonth(date.getMonth() + 1);  
record[‘日付’].value = date.getFulleYear() + “-” + (date.getMonth()+1) + “-” + date.getDate();  
return event;  
});  
でPC版はできたのですが、スマートフォン用アプリでは値が入りません（イベントのところは、mobile.app～としました）

いろいろやってみたところ、どうもスマートフォン用アプリでは、月、日付が2桁でないと値が入らないようで、  
date.getMonth()+1  
の部分を  
(“0”+(date.getMonth()+1)).slice(-2)  
としたことで値が入りました。

そこで、数点質問です。  
一番知りたいのは（３）です。

（１）[https://cybozudev.zendesk.com/hc/ja/articles/201941984-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%BF%BD%E5%8A%A0%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88#step4](https://cybozudev.zendesk.com/hc/ja/articles/201941984-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%BF%BD%E5%8A%A0%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88#step4)  
には、「フィールドの値を書き換えるのはPC用のみで利用できます。」とあるのですが、スマートフォン用で書き換えられたのは偶然なのでしょうか。

（２）[https://cybozudev.zendesk.com/hc/ja/articles/201941754#step6](https://cybozudev.zendesk.com/hc/ja/articles/201941754#step6)  
には、日付のフィールドでは0を省略しても問題ないと記載があるのですが、スマートフォン用は違うのでしょうか。

（３）スマートフォン用アプリで、上の方に表示されるフィールドに初期値を設定した場合、値が未入力の入力必須フィールドのところまで自動でスクロールしてしまい困っています。（iphoneで確認）  
画面の一番上が開くようにする方法はありませんでしょうか。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1574](https://avatars.discourse-cdn.com/v4/letter/l/76d3ee/32.png) [@Legacy\_Account1574](https://community.cybozu.dev/u/Legacy_Account1574)\
**Post date:** [2016 年 1 月 25 日午後 5:10 UTC](https://community.cybozu.dev/t/topic/2302/2 "2016-01-25T17:10:18Z")

</div>

KAORINさん

&nbsp;

（１）は、モバイルでもeventをreturnできるというのが正解だと思います（前からそうだったと思います）。

（２）は、モバイルだと不完全なISO8601形式だと入ってこないようですね。[Cybozu CDN](https://community.cybozu.dev/hc/ja/articles/202960194)にもホストされ、Tipsでも多用されているmoment.jsを利用して以下のようにISO8601形式をしっかり書かれてはいかがでしょうか。

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

kintone.events.on(['app.record.create.show', 'mobile.app.record.create.show', 'app.record.edit.show', 'mobile.app.record.edit.show'], function(event) {
var record = event.record;
record['日付'].value = moment().add(1, 'month').date(25).format('YYYY-M-DD');
return event;
});

})();

```

&nbsp;

（３）はそのようですが、パッといい方法が思い浮かびません。

&nbsp;

モバイルのカスタマイズは結構ナイーブなので、PCと同様とはいきませんし、注意が必要ですね。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2085](https://avatars.discourse-cdn.com/v4/letter/l/c6cbf5/32.png) [@Legacy\_Account2085](https://community.cybozu.dev/u/Legacy_Account2085)\
**Post date:** [2016 年 1 月 26 日午前 3:05 UTC](https://community.cybozu.dev/t/topic/2302/3 "2016-01-26T03:05:25Z")

</div>

Ryu Yamashita様

moment.jsは使用したことがなかったので、ご提示いただいたソースを試してみました。  
record[‘日付’].value = moment().add(1, ‘month’).date(25).format(‘YYYY-MM-DD’);  
でモバイル版でも日付が入ることを確認しました。

モバイル版については出されているドキュメントも違う点が多く、コミュニティでもまだ投稿が少ないため苦労しています。  
今後はモバイル版についても多くの情報が出てくることを望みます。  
ありがとうございました。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1574](https://avatars.discourse-cdn.com/v4/letter/l/76d3ee/32.png) [@Legacy\_Account1574](https://community.cybozu.dev/u/Legacy_Account1574)\
**Post date:** [2016 年 1 月 26 日午前 3:29 UTC](https://community.cybozu.dev/t/topic/2302/4 "2016-01-26T03:29:26Z")

</div>

マイナーバージョンアップもあったりするので、トラブルに繋がりそうな記述は避ける方が良いかと思います。ひとまず、よかったです。
