Description
Steps to reproduce:
1. Create a page with a DatePicker component.
2. Add an onchange JavaScript call to the DatePicker. E.g.
<span jwcid="@DatePicker" value="ognl:dateValue"
onchange="handleDateChanged()">
<input type="text" value="Day Month Year"/>
</span>
3. Click on the Calendar control and change the date.
Result:
The text field is updated, but the handleDateChanged() method is not called.
Expected Result:
The text field is updated, AND the handleDateChanged() method IS called.
Fix:
Change the DatePicker.script in framework/src/org.apache/tapestry/form.
${calendarObject}.onchange = function() {
document.${formName}.${name}.value = ${calendarObject}.formatDate();
document.${formName}.${name}.onchange(); /* New line invokes the onchange method */
}
This works on both Firefox and IE 6.0. It also works when there is no onchange method set.