###前提・実現したいこと
MonacaとOnsenUIを用いてアプリ開発を勉強しているのですが、ピッカーなどでユーザーに時間を入力してもらった後に、その時刻になったら画面遷移をする。という動作をしたいのですが、どのように実装していいのかが分かりません。
試しに下記のソースを実装してみたのですが、動作しませんでした。
###該当のソースコード
javascript
1function alarmstart(){ 2 document.querySelector('#navigator').pushPage('page2.html'); 3} 4 5function timecheck() { //時刻確認 <ons-button>で発火 6 var times = $(".form-control").val(); 7 8 if(!times.match(/^\d{1,2}\:\d{2}$/)){ // 書式のチェック ( 十の位,一の位 + : + 2桁の数字) 9 alert('正しい書式で入力してください'); 10 return value; 11 } 12 var al = times.split(":"); //「:」で時間,分を分ける 13 if ( parseInt(al[0],10) < 0 || parseInt(al[0],10) > 23 || parseInt(al[1],10) < 0 || parseInt(al[1],10) > 59 ) { //時間 = 0 ~ 23 : 分 = 0 ~ 59 14 alert('時間を入力してください'); 15 return value; 16 } 17 else{ 18 document.querySelector('#navigator').pushPage('alarm.html'); 19 20 //現在の時刻 21 var now = new Date(); 22 var now_hour = now.getHours(); 23 var now_min = now.getMinutes(); 24 var now_sec = now.getSeconds(); 25 26 //目標時刻 27 var set_time = $(".form-control").val().split(':'); 28 var set_hour = parseInt(set_time[0]); 29 var set_min = parseInt(set_time[1]); 30 31 if(now_hour > set_hour){ 32 set_hour += 24; 33 } 34 if(now_sec < 60){ 35 now_sec = 60 - now_sec; 36 } 37 if(now_hour == set_hour && now_min > set_min){ 38 set_hour += 24; 39 } 40 41 //時差を求める 42 var dif_hour = (set_hour - now_hour)*3600; 43 var dif_min = (set_min - now_min)*60; 44 45 //秒に変換する 46 var dif_sec = dif_hour + dif_min + now_sec; 47 48 //時間後画面遷移 49 return setTimeout("alarmstart()", dif_sec*1000); 50 } 51 return times; 52}
正式な時間が入力されているのを確認してから画面遷移をするようにしたいです。
else文の初めにdocument.querySelector('#navigator').pushPage('alarm.html');があるのは、時刻の入力後、確認ボタンを押した後時刻になるまでの待機画面を用いるためです。
###補足情報(言語/FW/ツール等のバージョンなど)
OnsenUI:ver2.4.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/16 02:57