PDA

View Full Version : how to validate the user enter the correct DATE type?


NinjaTurtle
07-13-2002, 03:20 AM
dear,
how to validate the user enter the correct DATE type to the text box?? any like
Function isDate(){

}
....?

Soldier Bob
07-13-2002, 05:08 AM
For IE5 and NS 4.7x no, you write your own.

for IE6 or NS6 ? I dont know...

there are plenty of date format checking scripts out there, just do a search for javasrcipts


-S. Bob

joh6nn
07-13-2002, 12:42 PM
if you explain exactly what it is you want, i can try and help you with it.

premshree
07-13-2002, 05:00 PM
Here's one that I wrote :
Sample Format : 23 Feb 1983


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Date Format Validator</title>
<script language="JavaScript">

// Date Format Validator
// Sample Format : 23 Feb 1983
// By Premshree Pillai
// http://www.qiksearch.com

function validate_date(formName, textName)
{
var errMsg="", lenErr=false, dateErr=false;
var testObj=eval('document.' + formName + '.' + textName + '.value');
var testStr=testObj.split(' ');
if(testStr.length>3 || testStr.length<3)
{
lenErr=true;
dateErr=true;
errMsg+="There is an error in the date format.";
}
var monthsArr = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug" ,"Sep", "Oct", "Nov", "Dec");
var daysArr = new Array;
for (var i=0; i<12; i++)
{
if(i!=1)
{
if((i/2)==(Math.round(i/2)))
{
if(i<=6)
{
daysArr[i]="31";
}
else
{
daysArr[i]="30";
}
}
else
{
if(i<=6)
{
daysArr[i]="30";
}
else
{
daysArr[i]="31";
}
}
}
else
{
if((testStr[2]/4)==(Math.round(testStr[2]/4)))
{
daysArr[i]="29";
}
else
{
daysArr[i]="28";
}
}
}
var monthErr=false, yearErr=false;
if(testStr[2]<1000 && !lenErr)
{
yearErr=true;
dateErr=true;
errMsg+="\nThe year \"" + testStr[2] + "\" is not correct.";
}
for(var i=0; i<12; i++)
{
if(testStr[1]==monthsArr[i])
{
var setMonth=i;
break;
}
}
if(!lenErr && (setMonth==undefined))
{
monthErr=true;
errMsg+="\nThe month \"" + testStr[1] + "\" is not correct.";
dateErr=true;
}
if(!monthErr && !yearErr && !lenErr)
{
if(testStr[0]>daysArr[setMonth])
{
errMsg+=testStr[1] + ' ' + testStr[2] + ' does not have ' + testStr[0] + ' days.';
dateErr=true;
}
}
if(!dateErr)
{
eval('document.' + formName + '.' + 'submit()');
}
else
{
alert(errMsg + '\n____________________________\n\nSample Date Format :\n23 Feb 1983');
eval('document.' + formName + '.' + textName + '.focus()');
eval('document.' + formName + '.' + textName + '.select()');
}
}
</script>
</head>
<body bgcolor="#FFFFFF">

<form name="form1" method="" action="">
<input type="text" maxlength="11" style="border:#000000 solid 1px; width:100px" name="date">
<input type="button" value="Submit" style="border:#000000 outset 1px; background:#EFEFEF; height:20px; cursor:pointer" onClick="javascript:validate_date('form1','date');">
</form>

</body>
</html>


:thumbsup: