- For individual users
- Instant access to solutions
- Ask your tech questions
- Start your 30-day Free Trial
Main Topics
Browse All TopicsI was using the following answer to help me:
http://www.experts-exchang
but, it seems left off where I most need it. "Bushweiler" explained that there is a way to not let the user leave a text box where there is invalid data. I can't seem to figure out how to do this. Please help!
I am trying to set the focus back to the box with the error.
<input tabindex="12" type="Text" size="10" name="txtDate3" onChange="CheckDate(this,'
This is my checkDate function:
/**
* DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com
*/
// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;
function isInteger(s){
var i;
for (i = 0; i < s.length; i++){
// Check that current character is number.
var c = s.charAt(i);
if (((c < "0") || (c > "9"))) return false;
}
// All characters are numbers.
return true;
}
function stripCharsInBag(s, bag){
var i;
var returnString = "";
// Search through string's characters one by one.
// If character is not in bag, append to returnString.
for (i = 0; i < s.length; i++){
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
function daysInFebruary (year){
// February has 29 days in any year evenly divisible by four,
// EXCEPT for centurial years which are not also divisible by 400.
return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
for (var i = 1; i <= n; i++) {
this[i] = 31
if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
if (i==2) {this[i] = 29}
}
return this
}
function isDate(dtStr){
var daysInMonth = DaysArray(12)
var pos1=dtStr.indexOf(dtCh)
var pos2=dtStr.indexOf(dtCh,po
var strMonth=dtStr.substring(0
var strDay=dtStr.substring(pos
var strYear=dtStr.substring(po
strYr=strYear
if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substrin
for (var i = 1; i <= 3; i++) {
if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
}
month=parseInt(strMonth)
day=parseInt(strDay)
year=parseInt(strYr)
if (pos1==-1 || pos2==-1){
alert("The date format should be : mm/dd/yyyy")
return false
}
if (strMonth.length<1 || month<1 || month>12){
alert("Please enter a valid month")
return false
}
if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
alert("Please enter a valid day")
return false
}
if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
return false
}
if (dtStr.indexOf(dtCh,pos2+1
alert("Please enter a valid date")
return false
}
return true
}
function ValidateForm(){
var dt=document.frmSample.txtD
if (isDate(dt.value)==false){
dt.focus()
return false
}
return true
}
function CheckDate(entered, alertbox, form, field)
{
with (entered)
{
//if (isDate(entered)==false) why are we using value
if (value=='N/A' || value == 'UNKNOWN' || value=='n/a' || value =='unknown' || value=='Unknown'){return true}
else {if (value==null || value=="" || isDate(value)==false) {
alert("You must fill in either a date or UNKNOWN")
eval("document." + form + "." + field + ".focus()");
}
else {return true};};
//if (value==null || value=="" || value!='N/A' || isDate(value)==false)
//{if (alertbox!="") {alert(alertbox);} return false;}
//else {return true;}
}
}
// dt.focus()
// return false
// }
// return true
//}
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Business Accounts
Answer for Membership
by: rkannan2000Posted on 2005-11-16 at 22:24:56ID: 15309577
Try this
', this.form.name, this.name);" onBlur="ValidateForm()">
<input tabindex="12" type="Text" size="10" name="txtDate3" onChange="CheckDate(this,'