I am using the following javascript to validate a text field on my site:
Code:
function checkExpire(form)
{
// regular expression to match required date format
re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
if(form.txtExpire.value != '' && !form.txtExpire.value.match(re)) {
alert("Invalid date format: " + form.txtExpire.value);
form.txtExpire.focus();
return false;
}
return true;
}
The above code works fine for the following situations:
The default value of the field is: __/__/____
The JavaScript code above will not accept that for a field value.
If a user inputs the following for a date 5_/7_/11__
for May 7th, 2011 the JavaScript will not accept the format it must be entered as:
05/07/2011 (in order to clear the validation)...
NOW HERE IS WHAT I NEED THE JAVASCRIPT TO DO:
1) It needs to accept __/__/____ as a value that can be inserted into the database
2) still retains the code above so 5_/7_/11__ is not an acceptable date but 05/07/2011 will work just fine
3) Now... the default value of the text field in Internet Explorer is __/__/____ but the value is blank in Mozilla Firefox so in an instance where the text field is completely blank I need the JavaScript to assign the value '__/__/____' ...
SO FAR:
I did at one point get both the validation working so it worked for rules 1 and 2 mentioned above but I completely destroyed it while trying to integrate rule 3 into the functionality.
So I know this can be accomplished with a series of if / else statements as well as assigning a value to a form object to handle rule# 3 ... I am just a novice getting ready to turn intermediate in JavaScript so any help, guidance, reference or example / sample code you could give me would be much appreciated.
Thank your for your assitance and I hope you are all doing well.
This might give you some ideas: once you break out the result into separate fields for month, day, and year checks for valid months, days in the month, 02/29/ only on leap years, and any valid ranges you have for dates can easily be added.
Code:
<html>
<head>
<title>Date-verify</title>
<script language="JavaScript" type="text/javascript">
function verify() {
var mytext=document.myform.text3.value;
var astring="";
var result = mytext.match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/)
if (result == null) {
alert("Format failed"); }
else {
for (var i = 0; i < result.length; i++) {
astring += i + ": " + result[i] + "\n"; }
alert(astring);
}
}
</script>
</head>
<body>
<form name="myform">
<INPUT id=text3 name=text3 value="00/00/0000" onChange="verify();">
</form>
</body>
</html>
Bookmarks