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+="</div>",l
jquery-ui-1.8.21.custom.min.js
return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?" ":"")+m),l+="</div>",l
2.日期部分
jquery-ui-1.8.19.custom.min.js
(bb&&!G?"?":bc?'<span class="ui-state-default">'+Y.getDate()+"</span>":'<a class="ui-state-default'+(Y.getTime()==b.getTime()?" ui-state-highlight":"")
jquery-ui-1.8.21.custom.min.js
(bb&&!G?" ":bc?'<span class="ui-state-default">'+Y.getDate()+"</span>":'<a class="ui-state-default'+(Y.getTime()==b.getTime()?" ui-state-highlight":"")
注: 是Unicode 和 ISO 8859-1的一种不间断空格(Non-Breaking Space),ie6不支持,在这里最好用" "替换。
来源:oschina
链接:https://my.oschina.net/u/143354/blog/79575