jQuery-ui的datepicker做得很不错,在项目中经常用到,但对其老是在界面上出现 “?” 感觉很不爽。出现的位置在顶部年和月之间,还有空的日期单元格。
这个问题困扰了我很长时间,一直想解决,但又没有时间。今天终于找到了问题的答案!
之前认为是页面或库的编码问题,但反复修改后没有解决问题,于是肯定了datepicker本身的问题。查看源代码发现了问题所在,不过此问题已经在 jquery-ui-1.8.21.custom.min.js 中得到了修正。但在 jquery-ui-1.8.19.custom.min.js 版本中存在此问题(之前版本也有可能),可以修改对应部分。以下是两个版本就此问题的差异部分:
1.标题部分
jquery-ui-1.8.19.custom.min.js
return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?"?":"")+m),l+="",ljquery-ui-1.8.21.custom.min.js
return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?" ":"")+m),l+="",l
2.日期部分
jquery-ui-1.8.19.custom.min.js
(bb&&!G?"?":bc?''+Y.getDate()+"":'
jquery-ui-1.8.21.custom.min.js (bb&&!G?" ":bc?''+Y.getDate()+"":'
注: 是Unicode 和 ISO 8859-1的一种不间断空格(Non-Breaking Space),ie6不支持,在这里最好用" "替换。