今天一直在想辦法解決 jsCalendar 搭配 ASP.NET 的 Validator 控制項時的一個 JavaScript 問題,嚴格來講,應該是 ASP.NET 的錯誤,他沒有將 JavaScript 的 Error Handling 寫好,導致會出現 JavaScript Error,不過最後還是無法解決,不得已只能用以下這種方式解決,就是把這一頁的所有 JavaScript Error 忽略掉:
<script type="text/javascript">
//<![CDATA[
window.onerror=function(){ return true; }
//]]>
</script>
感謝 nyson 網友提供修正的資訊! 若要修正此問題的話,只要修改 jsCalendar 中的 calendar-setup.js 檔案即可。
請找到 calendar-setup.js 檔案的第106行的 onSelect(cal) 函數,修改成如下的程式即可:
function onSelect(cal)
{
var p = cal.params;
var update = (cal.dateClicked || p.electric);
if (update && p.inputField)
{
p.inputField.value = cal.date.print(p.ifFormat);
if (typeof p.inputField.onchange == "function")
{
if(p.inputField.fireEvent)
p.inputField.fireEvent("onchange");
else
p.inputField.onchange();
}
}
if (update && p.displayArea)
p.displayArea.innerHTML = cal.date.print(p.daFormat);
if (update && typeof p.onUpdate == "function")
p.onUpdate(cal);
if (update && p.flat)
{
if (typeof p.flatCallback == "function")
f p.flatCallback(cal);
}
if (update && p.singleClick && cal.dateClicked)
cal.callCloseHandler();
};