set the return(false) in the <form> tag...and it doesn't refresh anymore, but now I get to about the same spot, and it waits a few seconds then pops up with an alert box that I didn't make which says:
True!
It has a yellow triangle with an exclamation point in it.
Any ideas are welcome.
Is there some limit on the time that a timer or interval can be set at?
I was trying to keep the code posted minimal as instructed by the 'Read These First' topics, but okay...
HTML Code
Code:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<title>RepeaTask</title>
<link rel="stylesheet" type="text/css" href="RepeaTask.css" />
<script type="text/javascript" src="RepeaTask.js"></script>
</head>
<body>
<form onsubmit="return(false)">
<h1>RepeaTask</h1>
<div class="intro">
<p>Enter the Start Time for your repeated task, then enter the end time. You can enter a repeat frequency in hours, minutes, or seconds. If you do not enter a repeat frequency, the default frequency of 15 minutes will be used.
</p>
</div>
<div class="timeform">
Enter Start Time:
</div>
<div>
<input type="number" name="STimeH" size="2" minimum="01" maximum="12" step="1" placeholder="01" />:
<input type="number" name="STimeM" size="2" minimum="00" maximum="59" step="1" placeholder="00" />
AM or PM: <input type="text" name="StartAorP" size="2" placeholder="PM"/>
</div>
<div>
Enter End Time:
</div>
<div>
<input type="number" name="ETimeH" size="2" minimum="01" maximum="12" step="1" placedholder="01" />:
<input type="number" name="ETimeM" size="2" minimum="00" maximum="59" step="1" placedholder="00" />
AM or PM<input type="text" name="EndAorP" size="2" placeholder="PM" />
</div>
<div>
Enter Repeat Frequency in hh:mm:ss :
</div>
<div>
<input type="number" name="FreqH" size="2" placeholder="00" />:
<input type="number" name="FreqM" size="2" placeholder="00" />:
<input type="number" name="FreqS" size="2" placeholder="00" />
</div>
<div><br></div>
<div>
<button type="submit" name="Set Repeat Alert" onclick="SetTimer(STimeH, STimeM, StartAorP, ETimeH, ETimeM, EndAorP, FreqH, FreqM, FreqS)">Set Repeat Alert</button>
<input type="button" value="Cancel Alert" onclick="CancelTimer()" />
</div>
</form>
</body>
</html>
And here's the javascript code. Keep in mind, I"m a beginner, so there are probably much easier ways to do what I'm doing, and feel free to point them out.
JS Code
Code:
//RepeaTask.js This is an initial startup
//Pull in User Entered Data
var q;
var timer_is_on=0;
var stimeh;
var stimem;
var etimeh;
var etimem;
var freqh;
var freqm;
var freqs;
var startaorp;
var endaorp;
var startTime;
var endTime;
var intToStart;
var freq;
//--------------------------------------------------------------------------//
function SetTimer(STimeH, STimeM, StartAorP, ETimeH, ETimeM, EndAorP, FreqH, FreqM, FreqS){
stimeh=STimeH.value;
stimem=STimeM.value;
etimeh=ETimeH.value;
etimem=ETimeM.value;
freqh=FreqH.value;
freqm=FreqM.value;
freqs=FreqS.value;
startaorp=StartAorP.value;
endaorp=EndAorP.value;
startTime=new Date();
endTime=new Date();
stimeh=stimeh*1;
etimeh=etimeh*1;
stimem=stimem*1;
etimem=etimem*1;
freqh=freqh*1;
freqm=freqm*1;
freqs=freqs*1;
freq=(freqh*3600000)+(freqm*60000)+(freqs*1000);
//---------- Check AM or PM and convert to Military time if needed --------//
if (startaorp == "pm"){
stimeh+=12;
}
if (endaorp =="pm"){
etimeh+=12;
}
//-----------Set User Input in Time Format --------------------------------//
startTime.setHours(stimeh);
startTime.setMinutes(stimem);
startTime.setSeconds(0);
startTime.setMilliseconds(0);
endTime.setHours(etimeh);
endTime.setMinutes(etimem);
endTime.setSeconds(0);
endTime.setMilliseconds(0);
CalcTimeInt(startTime, endTime, freq);
}
//-----------Calculate the Time Interval-----------------------------------//
function CalcTimeInt(startTime, endTime, freq){
now = new Date();
intToStart=startTime-now;
var hours=(intToStart/3600000);
var hrem=(intToStart%3600000);
var h=parseInt(hours);
var min=(hrem/60000);
var m=parseInt(min);
var mrem=(intToStart%60000);
var sec=(mrem/1000);
var s=parseInt(sec);
alert("Now is " + now);
alert("Repeat Task Alerts will start in " + h + " Hrs " + m + " Min " + s + " Sec");
StartCountDown(startTime, endTime, freq);
}
//-----------Start Countdown--------------------------------------------------//
function StartCountDown(startTime, endTime, freq){
now=new Date();
intToStart=startTime-now;
intInSec=intToStart/1000;
if (now > startTime){
StartRepeat(endTime, Freq);
}
else{
var TTS=setTimeout("StartCountDown(startTime, endTime, freq);", 1000);
}
}
function StartRepeat(endTime, freq){alert("Made it to StartRepeat Function");
if (freq != 0){
var task=setInterval("TaskRemind(endTime, freq)", freq);
}
else{
clearTimeout(task);
}
}
function TaskRemind(endTime, freq){
alert("Do Task Now!");
now=new Date();
if (now <= endTime){
StartRepeat(endTime, freq);
}
else{
freq=0;
StartRepeat(endTime, freq);
}
}
function StartCountDown(startTime, endTime, freq){
now=new Date();
intToStart=startTime-now;
intInSec=intToStart/1000;
if (now > startTime){
StartRepeat(endTime, freq);//made f ing freq lowercase
}
else{
var TTS=setTimeout("StartCountDown(startTime, endTime, freq);", 1000);
}
}
i wasn't able to duplicate your problem with the true! alertbox.
in the future use your browsers developer tools when you write JavaScript. it will often tell you where the problem is