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

日付フィールドの初期値として、「次の月の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)
としたことで値が入りました。

そこで、数点質問です。
一番知りたいのは(3)です。

(1)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用のみで利用できます。」とあるのですが、スマートフォン用で書き換えられたのは偶然なのでしょうか。

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

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

KAORINさん

 

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

(2)は、モバイルだと不完全なISO8601形式だと入ってこないようですね。Cybozu CDNにもホストされ、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;
});

})();

 

(3)はそのようですが、パッといい方法が思い浮かびません。

 

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

Ryu Yamashita様

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

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

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