I had to go into the Django libraries and step through the code for calendar.js and datetimeshortcuts.js to see what was happening. On line 410 of datetimeshortcuts.js, I inserted this code to fire an event manually. Now it works:
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", true, true);
DateTimeShortcuts.calendarInputs[num].dispatchEvent(evt);
}
else
DateTimeShortcuts.calendarInputs[num].fireEvent("onchange");
And that code, I got from here:
How can I trigger an onchange event manually?
So now, the last section of code in there around line 410 looks like this:
.replace('\r', '\\r')
.replace('\n', '\\n')
.replace('\t', '\\t')
.replace("'", "\\'");
return function(y, m, d) {
DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format);
DateTimeShortcuts.calendarInputs[num].focus();
document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none';
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", true, true);
DateTimeShortcuts.calendarInputs[num].dispatchEvent(evt);
}
else
DateTimeShortcuts.calendarInputs[num].fireEvent("onchange");
};
},