Link to home
Start Free TrialLog in
Avatar of bbvic
bbvic

asked on

Time input validation

hi!
I am trying to make input validation.
if I have one input text, the validation works. But if I have more than one input text, it does not work..

Would you please help me??

<html>

<HEAD>

<SCRIPT LANGUAGE="JavaScript">

function IsValidTime() {
for (i = 0; i <= 3; i++)
{

var timeStrA = document.timeform.time +'i'.value;
var timeStr = timeStrA+'i';
var timePat = /^(\d{1,2}):(\d{2})?$/;

var matchArray +'i'  = timeStr.match(timePat);
var matchArray = matchArray +'i';
if (matchArray == null) {
alert("Time is not in a valid format.");
return false;
}

var hour = matchArray[1];
var minute = matchArray[2];

if (hour < 0  || hour > 24) {
alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
return false;
}

if (minute<0 || minute > 59) {
alert ("Minute must be between 0 and 59.");
return false;
}
}
}

</script>
</HEAD>


<BODY>

<center>
<form name=timeform >

time1  <input type=text name="time"><br>
time2  <input type=text name="time1"><br>
time3  <input type=text name="time2"><br>
time4  <input type=text name="time3"><br>

<input type="submit" value="Submit" onClick="return IsValidTime();">
</form>
</center>

</body>
</html>
Avatar of Roonaan
Roonaan
Flag of Netherlands image

Try:

var timeStrA = eval("document.timeform.time" +i + ".value");

-r-
Avatar of archrajan
archrajan

try
var timeStrA = document.timeform.elements[time +'i'].value;
sorry shud be

var timeStrA = document.timeform.elements['time' +i].value;
or simply

var timeStrA = document.timeform.elements['time' +i].value;
<no-points>
sorry Roonan, did not see ur post
</no-points>
few other things need to be corrected in ur script


<html>

<HEAD>

<SCRIPT LANGUAGE="JavaScript">

function IsValidTime() {
for (i = 0; i <= 3; i++)
{

var timeStr = document.timeform.elements['time' +i].value;

var timePat = /^(\d{1,2}):(\d{2})?$/;

var matchArray   = timeStr.match(timePat);

if (matchArray == null) {
alert("Time is not in a valid format.");
document.timeform.elements['time' +i].select();
document.timeform.elements['time' +i].focus();
return false;
}

var hour = matchArray[1];
var minute = matchArray[2];

if (hour < 0  || hour > 24) {
alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
return false;
}

if (minute<0 || minute > 59) {
alert ("Minute must be between 0 and 59.");
return false;
}
}
}

</script>
</HEAD>


<BODY>

<center>
<form name=timeform >

time1  <input type=text name="time0"><br>
time2  <input type=text name="time1"><br>
time3  <input type=text name="time2"><br>
time4  <input type=text name="time3"><br>

<input type="submit" value="Submit" onClick="return IsValidTime();">
</form>
</center>

</body>
</html>
ASKER CERTIFIED SOLUTION
Avatar of archrajan
archrajan

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial