You're welcome. Both of those methods rely upon the form having an id of 'mydateform'. These counterparts do not:
Simple version:
Code:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="calendarDateInput.js">
/***********************************************
* Jason's Date Input Calendar- By Jason Moon http://calendar.moonscript.com/dateinput.cfm
* Script featured on and available at http://www.dynamicdrive.com
* Keep this notice intact for use.
***********************************************/
</script>
</head>
<body>
<form>
<script>DateInput('orderdate', true, 'DD-MON-YYYY')</script>
<input type="button" onclick="alert(this.form.orderdate.value)" value="Show date value passed">
</form>
<script type="text/javascript">
(function(){
var elementsdate = document.getElementsByName(this)[0].form.elements, i = elementsdate.length, el;
while(--i > -1){
el = elementsdate[i];
if(el.id.indexOf(this + '_') === 0 || el.name == this){
el.value = '';
el.selectedIndex = -1;
}
}
}).apply('orderdate');
</script>
</body>
</html>
Robust version:
Code:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="calendarDateInput.js">
/***********************************************
* Jason's Date Input Calendar- By Jason Moon http://calendar.moonscript.com/dateinput.cfm
* Script featured on and available at http://www.dynamicdrive.com
* Keep this notice intact for use.
***********************************************/
</script>
</head>
<body>
<form>
<script>DateInput('orderdate', true, 'DD-MON-YYYY')</script>
<input type="button" onclick="alert(this.form.orderdate.value)" value="Show date value passed">
</form>
<script type="text/javascript">
(function(dateName){
var elementsdate = document.getElementsByName(dateName)[0].form.elements, i = elementsdate.length,
dateObj = window[dateName + '_Object'], el, day, month, year, pd;
dateObj.setHidden('');
while(--i > -1){
el = elementsdate[i];
if(el.className === 'calendarDateInput' && el.id.indexOf(dateName + '_') === 0){
if(el.id === dateObj.yearFieldID){
el.value = '';
el.disabled = true;
year = el;
el.title = 'Enter Year - First Pick a Month';
}
else if(el.id === dateObj.dayListID){
el.selectedIndex = -1;
el.disabled = true;
day = el;
el.title = 'Select Day - First Pick a Month';
}
else if(el.id === dateObj.monthListID){
el.selectedIndex = -1;
el.title = 'Month';
month = el;
(function(el){
el.onchange = function(){
day.disabled = year.disabled = false;
day.selectedIndex = 0;
day.title = 'Day';
year.value = new Date().getFullYear();
year.title = 'Year';
dateObj.pickDay = function(dayNum){
pd.apply(dateObj, [dayNum]);
};
dateObj.changeMonth(el);
el.onchange = function(){dateObj.changeMonth(el);};
};
})(el);
}
}
}
pd = dateObj.pickDay;
dateObj.pickDay = function(dayNum){
day.disabled = year.disabled = false;
day.selectedIndex = 0;
day.title = 'Day';
year.value = new Date().getFullYear();
year.title = 'Year';
month.onchange = function(){dateObj.changeMonth(month);};
pd.apply(dateObj, [dayNum]);
dateObj.pickDay = function(dayNum){
pd.apply(dateObj, [dayNum]);
};
};
})('orderdate');
</script>
</body>
</html>
Also I should have mentioned that the name of the hidden field (red):
Code:
<script>DateInput('orderdate', true, 'DD-MON-YYYY')</script>
must ne passed to the function as shown in all of the examples, where it is highlighted red in each example. It can be whatever you want it to be. But it must be unique and it must be passed as mentioned.
Any questions, just let me know.
If you're having trouble implementing any of these and want more help, please include a link to the page on your site that contains the problematic code so we can check it out.
Bookmarks