var obj = document.getElementById("<%=txtDate.ClientID%>");
var day = obj.value.split("/")[0];
var month = obj.value.split("/")[1];
var year = obj.value.split("/")[2];
if ((day<1 || day >31) || (month<1&&month>12)&&(year.length != 4))
{
alert("Invalid Format");return
false;
}
else
{
var dt =
new Date(year, month-1, day);
var today =
new Date();
if((dt.getDate() != day) || (dt.getMonth() != month-1) || (dt.getFullYear()!=year) || (dt>today))
Validating date in javascript is not a straightforward job specially when you have a different date format than compared with that of javascript . plz check out the following thread which deal with the same scenario of date validation using javascript :-
http://forums.asp.net/t/1357242.aspx
<html>
<head>
<script language="javascript">
function checkDt(fld) {
var mo, day, yr;
var entry = fld.value;
var reLong = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/;
var reShort = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{2}\b/;
var valid = (reLong.test(entry)) || (reShort.test(entry));
if (valid) {
var delimChar = (entry.indexOf("/") != -1) ? "/" : "-";
var delim1 = entry.indexOf(delimChar);
var delim2 = entry.lastIndexOf(delimChar);
mo = parseInt(entry.substring(0, delim1), 10);
day = parseInt(entry.substring(delim1+1, delim2), 10);
yr = parseInt(entry.substring(delim2+1), 10);
// handle two-digit year
if (yr < 100) {
var today = new Date();
// get current century floor (e.g., 2000)
var currCent = parseInt(today.getFullYear() / 100) * 100;
// two digits up to this year + 15 expands to current century
var threshold = (today.getFullYear() + 15) - currCent;
if (yr > threshold) {
yr += currCent - 100;
} else {
yr += currCent;
}
}
var testDate = new Date(yr, mo-1, day);
if (testDate.getDate() == day) {
if (testDate.getMonth() + 1 == mo) {
if (testDate.getFullYear() == yr) {
// fill field with database-friendly format
fld.value = mo + "/" + day + "/" + yr;
return true;
} else {
alert("Check the year entry.");
}
} else {
alert("Check the month entry.");
}
} else {
alert("Check the date entry.");
}
} else {
alert("Invalid date format. Enter as mm/dd/yyyy.");
}
return false;
}
</script>
</head>
<body>
<input type="text" id="txtDt" onblur="checkDt(this)" />
</body>
I have a similar problem. I want to have a text box on a page that the user can enter any date in MM/DD/YYYY format and then upon submit it would take then to another page
that would tell them how many days till Christmas is. How can I get what the user enter as the date to the second page as the current date? This is what I have so far.
This is the page with just the text box to enter the date and the submit button
<html> <head> <form method="get" onsubmit="return false;" action=""> <p> Enter date to see how many days till Christmas: <input value="" type="text" size="30" name="theirtext"> </p> <p> <input type="button" onclick=" " value="Submit Date"> </p> </form> </head> </html>
This is the main page called christmas
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<body>
<script language ="JavaScript">
</script>
<h1 class="title" align="left">JavaScript - How Many Days till Christmas?</a></h1>
<script language="javascript">
<!---Hide from non-javascript browswers
function XmasDays(CurrentDay)
{
var XYear=CurrentDay.getFullYear();
var XDay=new Date("December 25, 2009");
XDay.setFullYear(XYear);
var DayCount=(XDay-CurrentDay)/(1000*60*60*24);
DayCount=Math.round(DayCount);
return DayCount;
}
function MonthTxt(MonthNumber)
{
var Month=new Array();
Month[1]="January";
Month[2]="February";
Month[3]="March";
Month[4]="April";
Month[5]="May";
Month[6]="June";
Month[7]="July";
Month[8]="August";
Month[9]="September";
Month[10]="October";
Month[11]="November";
Month[12]="December";
return Month[MonthNumber];
}
//Stop hiding--->
</script>
</HEAD>
<script language="JavaScript">
var Today=new Date("July 30, 2009");
var ThisDay=Today.getDate();
var ThisMonth=Today.getMonth()+1;
var ThisYear=Today.getFullYear();
var DaysLeft=XmasDays(Today);
var MonthName=MonthTxt(ThisMonth);
document.write("Today is "+MonthName+" "+ThisDay+" <br>");
if (DaysLeft > 5)
{
document.write("Only "+DaysLeft+" days till Christmas");
}
else
{
document.write("Happy Holidays from Judy Abner");
}
// Stop hiding
</script>
</h5></i>
</div>
</div>
</body>
</html>
Hi, Thanks for ur approach,thats working fine.But my problem is that my date looks like 01-jan-2000.here how to compare today month like 06 with jan.So how to do that.Help me again....
ch.srinivas1...
Member
10 Points
58 Posts
how to validate textbox value(date format) < current date using Javascript when press on button
Jan 20, 2009 02:49 PM|LINK
hi all,
in my page one asp.net Textbox to enter the date.
onclientclick event of button i need to validate the textbox value ( mm/dd/yyyy format) should be less than or equal to Current Date using Javascript.
validation using javascript when press on enter button.
Thanks
Sriniavs
MetalAsp.Net
All-Star
112702 Points
18360 Posts
Moderator
Re: how to validate textbox value(date format) < current date using Javascript when press on but...
Jan 20, 2009 03:05 PM|LINK
Use a CustomValidator. In javascript you can get today date using:
var dateNow = new Date();
this you would compare to the date entered in textbox.
mmeisel
Member
168 Points
100 Posts
Re: how to validate textbox value(date format) < current date using Javascript when press on but...
Jan 20, 2009 03:05 PM|LINK
Here is what you put in the button:
<input type="submit" id="btnSubmit" value="Submit" onClick="return Validate();"/>
Javascript
<script type="text/javascript">
<!--
function Validate()
{
var intFlag = 0;
var strErrMsg = "Please complete the following field(s):\n\n";
var dtDate= document.getElementById("tbDate").value; // tbDate = name of text box
var currentDate= getCalendarDate()
if (dtDate > currentDate )
{
strErrMsg = strErrMsg + "your custom error message \n";
intFlag++;
}
// Display error message if a field is not completed
if (intFlag != 0)
{
alert (strErrMsg);
return false;
}
else
return true;
}
//-->
</script>
mudassarkhan
All-Star
78956 Points
13402 Posts
MVP
Re: how to validate textbox value(date format) < current date using Javascript when press on but...
Jan 20, 2009 03:50 PM|LINK
try this simple javascript
function dateValidation(){
var obj = document.getElementById("<%=txtDate.ClientID%>"); var day = obj.value.split("/")[0]; var month = obj.value.split("/")[1]; var year = obj.value.split("/")[2]; if ((day<1 || day >31) || (month<1&&month>12)&&(year.length != 4)){
alert("Invalid Format");return false;}
else{
var dt = new Date(year, month-1, day); var today = new Date(); if((dt.getDate() != day) || (dt.getMonth() != month-1) || (dt.getFullYear()!=year) || (dt>today)){
alert("Invalid Date");return false;}
}
}
Contact me
jawahars
Member
152 Points
103 Posts
Re: how to validate textbox value(date format) < current date using Javascript when press on but...
Jan 21, 2009 04:37 AM|LINK
if(Date.Parse(document.GetElementById('txtDate').value) <= Today)
{
//Your code goes here.
}
Thanks,
Jawahar
Lets screw the Technolgies.
Pawan_Mishra
Star
8869 Points
1293 Posts
Re: how to validate textbox value(date format) < current date using Javascript when press on but...
Jan 21, 2009 05:15 AM|LINK
Hi Srinivas ,
Validating date in javascript is not a straightforward job specially when you have a different date format than compared with that of javascript . plz check out the following thread which deal with the same scenario of date validation using javascript :- http://forums.asp.net/t/1357242.aspx
Pawan Mishra
Moving from Asp.Net to WPF and SilverLight .....
.Net 360°
windows_mss
Participant
1394 Points
303 Posts
Re: how to validate textbox value(date format) < current date using Javascript when press on but...
Jan 21, 2009 05:25 AM|LINK
<html> <head> <script language="javascript"> function checkDt(fld) { var mo, day, yr; var entry = fld.value; var reLong = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/; var reShort = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{2}\b/; var valid = (reLong.test(entry)) || (reShort.test(entry)); if (valid) { var delimChar = (entry.indexOf("/") != -1) ? "/" : "-"; var delim1 = entry.indexOf(delimChar); var delim2 = entry.lastIndexOf(delimChar); mo = parseInt(entry.substring(0, delim1), 10); day = parseInt(entry.substring(delim1+1, delim2), 10); yr = parseInt(entry.substring(delim2+1), 10); // handle two-digit year if (yr < 100) { var today = new Date(); // get current century floor (e.g., 2000) var currCent = parseInt(today.getFullYear() / 100) * 100; // two digits up to this year + 15 expands to current century var threshold = (today.getFullYear() + 15) - currCent; if (yr > threshold) { yr += currCent - 100; } else { yr += currCent; } } var testDate = new Date(yr, mo-1, day); if (testDate.getDate() == day) { if (testDate.getMonth() + 1 == mo) { if (testDate.getFullYear() == yr) { // fill field with database-friendly format fld.value = mo + "/" + day + "/" + yr; return true; } else { alert("Check the year entry."); } } else { alert("Check the month entry."); } } else { alert("Check the date entry."); } } else { alert("Invalid date format. Enter as mm/dd/yyyy."); } return false; } </script> </head> <body> <input type="text" id="txtDt" onblur="checkDt(this)" /> </body>NJoy Programming...
Blogging @ xploredotnet
clark101
Member
2 Points
1 Post
Re: how to validate textbox value(date format) < current date using Javascript when press on but...
Apr 11, 2009 06:32 PM|LINK
I have a similar problem. I want to have a text box on a page that the user can enter any date in MM/DD/YYYY format and then upon submit it would take then to another page that would tell them how many days till Christmas is. How can I get what the user enter as the date to the second page as the current date? This is what I have so far.
mudassarkhan
All-Star
78956 Points
13402 Posts
MVP
Re: how to validate textbox value(date format) < current date using Javascript when press on but...
Apr 11, 2009 06:51 PM|LINK
Try if this helps
http://www.aspsnippets.com/post/2009/03/21/Dynamic-Date-Validation-using-JavaScript.aspx
Contact me
kannah_log
Member
7 Points
55 Posts
Re: how to validate textbox value(date format) < current date using Javascript when press on but...
Jun 17, 2009 04:27 AM|LINK
Hi, Thanks for ur approach,thats working fine.But my problem is that my date looks like 01-jan-2000.here how to compare today month like 06 with jan.So how to do that.Help me again....
Regards,
kamal.G