こんにちは。
いつも参考にさせていただいております。
休暇申請アプリがあり、レコード内にある時刻フィールドと日付フィールドに値を入力すると
日時フィールドに自動で結合させるコードを作成しました。
PC版のコードは問題なく動いておりますが、モバイル版の方のみエラーが発生するので、
原因をご教授ください。
・エラーが出るフィールド:時刻フィールド
・エラーのタイミング:時刻フィールドに入れた値を一度クリアして、再度入力し直す時
・エラー内容:「時刻の形式が不正です。」
・結果:時刻フィールドの値が入力できない
↓↓↓↓PC版のコードはこちらになります。このコードは正常に動作しています。
(function() {
‘use strict’;
var showEvent = [
‘app.record.create.change.開始時刻’,
‘app.record.create.change.取得開始日’,
‘app.record.edit.change.取得開始日’,
‘app.record.edit.change.開始時刻’
];
kintone.events.on(showEvent, function(event) {
var record = event.record;
var date = record[‘取得開始日’][‘value’];
var time = record[‘開始時刻’][‘value’];
// 日付フィールドと時刻フィールドに値が設定されていれば日時を算出する
if (date !== undefined && time !== undefined) {
record[‘取得開始日時’][‘value’] = date + ‘T’ + time + ‘+09:00’;
}
// 日時フィールドは手入力させない
record[‘取得開始日時’][‘disabled’] = true;
return event;
});
})();
(function () {
'use strict';
// スマホ用イベント
var mobileEvents = [
'mobile.app.record.create.change.取得開始日',
'mobile.app.record.create.change.開始時刻',
'mobile.app.record.edit.change.取得開始日',
'mobile.app.record.edit.change.開始時刻'
];
kintone.events.on(mobileEvents, function (event) {
var record = event.record;
var date = record['取得開始日'].value;
var time = record['開始時刻'].value;
// 日付と時刻が両方入っている場合のみ結合
if (date !== undefined && time !== undefined) {
record['取得開始日時'].value = date + 'T' + time + '+09:00';
}
// 手入力不可にする
record['取得開始日時'].disabled = true;
return event;
});
})();