jkharodia
asked on
validate Date Format dd/mm/yyyy
Hi
I have found the follwoing script which works great, however i would like to adapt it so that this can be applied to two date fields in my form
<script language=javascript>
/************************* ********** ********** ********** ********** *****/
/*Function name :isDigit(theDigit) */
/*Usage of this function :test for an digit */
/*Input parameter required:thedata=string for test whether is digit */
/*Return value :if is digit,return true */
/* else return false */
/************************* ********** ********** ********** ********** *****/
function isDigit(theDigit)
{
var digitArray = new Array('0','1','2','3','4', '5','6','7 ','8','9') ,j;
for (j = 0; j < digitArray.length; j++)
{if (theDigit == digitArray[j])
return true
}
return false
}
/************************* ********** ********** ********** ********** ********/
/*Function name :isPositiveInteger(theStri ng) */
/*Usage of this function :test for an +ve integer */
/*Input parameter required:thedata=string for test whether is +ve integer*/
/*Return value :if is +ve integer,return true */
/* else return false */
/*function require :isDigit */
/************************* ********** ********** ********** ********** ********/
function isPositiveInteger(theStrin g)
{
var theData = new String(theString)
if (!isDigit(theData.charAt(0 )))
if (!(theData.charAt(0)== '+'))
return false
for (var i = 1; i < theData.length; i++)
if (!isDigit(theData.charAt(i )))
return false
return true
}
/************************* ********** ********** ********** ********** *****/
/*Function name :isDate(s,f) */
/*Usage of this function :To check s is a valid format */
/*Input parameter required:s=input string */
/* f=input string format */
/* =1,in mm/dd/yyyy format */
/* else in dd/mm/yyyy */
/*Return value :if is a valid date return 1 */
/* else return 0 */
/*Function required :isPositiveInteger() */
/************************* ********** ********** ********** ********** *****/
function isDate(s,f)
{var a1=s.split("/");
var a2=s.split("-");
var e=true;
if ((a1.length!=3) && (a2.length!=3))
{
e=false;
}
else
{if (a1.length==3)
var na=a1;
if (a2.length==3)
var na=a2;
if (isPositiveInteger(na[0]) && isPositiveInteger(na[1]) && isPositiveInteger(na[2]))
{ if (f==1)
{var d=na[1],m=na[0];
}
else
{var d=na[0],m=na[1];
}
var y=na[2];
if (((e) && (y<1000)||y.length>4))
e=false
if (e)
{
v=new Date(m+"/"+d+"/"+y);
if (v.getMonth()!=m-1)
e=false;
}
}
else
{
e=false;
}
}
return e
}
function checkDate(v)
{
var s=v.a.value;
if (isDate(s,0)) //dd/mm/yyyy format
return true;
else
alert("The inputted date value is not valid!");
return false;
}
function checkDate(v)
{
var s=v.a.value;
if (isDate(s,0)) //dd/mm/yyyy format
return true;
else
alert("The inputted date value is not valid!");
return false;
}
</script>
<form name="frmParam" id="frmParam" method="post" action="ReportRes2.asp" onSubmit="return checkDate(this)">
<input name="txtStartDate" type="text" id="a" />
The second text field is <input name="txtEndDate" type="text" id="txtEndDate" />. Any help much appreciated as i have spent all day trying to figure this out
Ta
I have found the follwoing script which works great, however i would like to adapt it so that this can be applied to two date fields in my form
<script language=javascript>
/*************************
/*Function name :isDigit(theDigit) */
/*Usage of this function :test for an digit */
/*Input parameter required:thedata=string for test whether is digit */
/*Return value :if is digit,return true */
/* else return false */
/*************************
function isDigit(theDigit)
{
var digitArray = new Array('0','1','2','3','4',
for (j = 0; j < digitArray.length; j++)
{if (theDigit == digitArray[j])
return true
}
return false
}
/*************************
/*Function name :isPositiveInteger(theStri
/*Usage of this function :test for an +ve integer */
/*Input parameter required:thedata=string for test whether is +ve integer*/
/*Return value :if is +ve integer,return true */
/* else return false */
/*function require :isDigit */
/*************************
function isPositiveInteger(theStrin
{
var theData = new String(theString)
if (!isDigit(theData.charAt(0
if (!(theData.charAt(0)== '+'))
return false
for (var i = 1; i < theData.length; i++)
if (!isDigit(theData.charAt(i
return false
return true
}
/*************************
/*Function name :isDate(s,f) */
/*Usage of this function :To check s is a valid format */
/*Input parameter required:s=input string */
/* f=input string format */
/* =1,in mm/dd/yyyy format */
/* else in dd/mm/yyyy */
/*Return value :if is a valid date return 1 */
/* else return 0 */
/*Function required :isPositiveInteger() */
/*************************
function isDate(s,f)
{var a1=s.split("/");
var a2=s.split("-");
var e=true;
if ((a1.length!=3) && (a2.length!=3))
{
e=false;
}
else
{if (a1.length==3)
var na=a1;
if (a2.length==3)
var na=a2;
if (isPositiveInteger(na[0]) && isPositiveInteger(na[1]) && isPositiveInteger(na[2]))
{ if (f==1)
{var d=na[1],m=na[0];
}
else
{var d=na[0],m=na[1];
}
var y=na[2];
if (((e) && (y<1000)||y.length>4))
e=false
if (e)
{
v=new Date(m+"/"+d+"/"+y);
if (v.getMonth()!=m-1)
e=false;
}
}
else
{
e=false;
}
}
return e
}
function checkDate(v)
{
var s=v.a.value;
if (isDate(s,0)) //dd/mm/yyyy format
return true;
else
alert("The inputted date value is not valid!");
return false;
}
function checkDate(v)
{
var s=v.a.value;
if (isDate(s,0)) //dd/mm/yyyy format
return true;
else
alert("The inputted date value is not valid!");
return false;
}
</script>
<form name="frmParam" id="frmParam" method="post" action="ReportRes2.asp" onSubmit="return checkDate(this)">
<input name="txtStartDate" type="text" id="a" />
The second text field is <input name="txtEndDate" type="text" id="txtEndDate" />. Any help much appreciated as i have spent all day trying to figure this out
Ta
Missing ")"
onSubmit="return (checkDate(this.a) && checkDate(this.txtEndDate) )"
onSubmit="return (checkDate(this.a) && checkDate(this.txtEndDate)
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
function checkDate(v)
{
var s=v.a.value;
if (isDate(s,0)) //dd/mm/yyyy format
return true;
else
alert("The inputted date value is not valid!");
return false;
}
to:
function checkDate(field)
{
var s=field.value;
if (isDate(s,0)) //dd/mm/yyyy format
return true;
else
alert("The inputted date value is not valid!");
return false;
}
And change
onSubmit="return checkDate(this)"
to:
onSubmit="return (checkDate(this.a) && checkDate(this.txtEndDate)