The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

jsCalendar 搭配 Validator 控制項的 JavaScript 錯誤

今天一直在想辦法解決 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();
};