我正在使用jquery的datepicker控件,一切都很好,除了我不能让它突出显示当前选择的输入值(或者当前日期).即使我在文本输入中有有效的日期值,并且可以让datepicker返回正确的月份/年份,但我无法在日历上突出显示该日期.
这是我的代码:
$('.date_picker').datepicker({ dateFormat: 'dd/mm/yy', duration: '', gotoCurrent: true, defaultDate: -1});
..这里是样式表:
/*datepicker*/ /* Main Style Sheet for jQuery UI date picker */ .ui-datepicker-div, .ui-datepicker-inline, #ui-datepicker-div { /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; font-family: Verdana, Arial, sans-serif; background: #ffffff url(images/ffffff_40x100_textures_01_flat_0.png) 0 0 repeat-x; font-size: 0.80em; border: 4px solid #dddddd; width: 15.5em; padding: 2.5em .5em .5em .5em; position: relative; } .ui-datepicker-div, #ui-datepicker-div { z-index: 9999; /*must have*/ display: none; } .ui-datepicker-inline { float: left; display: block; } .ui-datepicker-control { display: none; } .ui-datepicker-current { display: none; } .ui-datepicker-next, .ui-datepicker-prev { position: absolute; left: .5em; top: .5em; background: #e6e6e6 url(images/e6e6e6_40x100_textures_02_glass_75.png) 0 50% repeat-x; } .ui-datepicker-next { left: 14.6em; } .ui-datepicker-next:hover, .ui-datepicker-prev:hover { background: #dadada url(images/dadada_40x100_textures_02_glass_75.png) 0 50% repeat-x; } .ui-datepicker-next a, .ui-datepicker-prev a { text-indent: -999999px; width: 1.3em; height: 1.4em; display: block; font-size: 1em; background: url(images/888888_7x7_arrow_left.gif) 50% 50% no-repeat; border: 1px solid #d3d3d3; cursor: pointer; } .ui-datepicker-next a { background: url(images/888888_7x7_arrow_right.gif) 50% 50% no-repeat; } .ui-datepicker-prev a:hover { background: url(images/454545_7x7_arrow_left.gif) 50% 50% no-repeat; } .ui-datepicker-next a:hover { background: url(images/454545_7x7_arrow_right.gif) 50% 50% no-repeat; } .ui-datepicker-prev a:active { background: url(images/222222_7x7_arrow_left.gif) 50% 50% no-repeat; } .ui-datepicker-next a:active { background: url(images/222222_7x7_arrow_right.gif) 50% 50% no-repeat; } .ui-datepicker-header select { border: 1px solid #d3d3d3; color: #555555; background: #e6e6e6; font-size: 1em; line-height: 1.4em; position: absolute; top: .5em; margin: 0 !important; } .ui-datepicker-header option:focus, .ui-datepicker-header option:hover { background: #dadada; } .ui-datepicker-header select.ui-datepicker-new-month { width: 7em; left: 2.2em; } .ui-datepicker-header select.ui-datepicker-new-year { width: 5em; left: 9.4em; } table.ui-datepicker { width: 15.5em; text-align: right; } table.ui-datepicker td a { padding: .1em .3em .1em 0; display: block; color: #555555; background: #e6e6e6 url(images/e6e6e6_40x100_textures_02_glass_75.png) 0 50% repeat-x; cursor: pointer; border: 1px solid #ffffff; } table.ui-datepicker td a:hover { border: 1px solid #999999; color: #212121; background: #dadada url(images/dadada_40x100_textures_02_glass_75.png) 0 50% repeat-x; } table.ui-datepicker td a:active { border: 1px solid #dddddd; color: #222222; background: #ffffff url(images/ffffff_40x100_textures_02_glass_65.png) 0 50% repeat-x; } table.ui-datepicker .ui-datepicker-title-row td { padding: .3em 0; text-align: center; font-size: .9em; color: #222222; text-transform: uppercase; } table.ui-datepicker .ui-datepicker-title-row td a { color: #222222; } .ui-datepicker-cover { display: none; display/**/: block; position: absolute; z-index: -1; filter: mask(); top: -4px; left: -4px; width: 193px; height: 200px; }
我正在使用IE7进行测试,但我在Firefox中看到了相同的行为.
关于这个问题的任何想法?
首先,您在哪个浏览器中查看日期选择器?我注意到,与以后的浏览器(Firefox 3,Chrome,IE7)相比,IE6中日期/部分的日期/部分的颜色看起来有所不同.
例如,IE6似乎忽略周末天的背景颜色.
当前所选日期和今天日期的背景颜色均通过CSS控制.最后一个datepicker的默认CSS 是主要的植物群样式表,虽然我看到有一个新版本/样式表的datepicker(我还没有正确阅读,我相信它可能是一个新版本)jQuery网站本周.
样式表中要更改背景颜色的类的相关默认名称是 -
/* current input value background color */ .ui-datepicker-current-day { background: #83C948 } /* today's background color */ .ui-datepicker-today { background: #83C948 }
编辑:
如果您按原样使用旧的Datepicker,那么这些是插件js文件中的相关行 -
this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class (printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + ... // highlight today (if different)
因此,你要么
需要CSS样式表中的这些CSS类来突出显示今天和当前选择的日期
要么
您需要更改插件js文件中的名称,并在CSS样式表中为类使用相同的名称
就个人而言,我会选择前者,因为他们是众所周知的类名.
编辑2:
似乎新的日期选择器使用稍微不同的CSS来为当前选择的日期和今天的日期着色.虽然之前的版本设置了table cell(td)元素的样式,但新版本在单元格内设置了anchor(a)元素的样式.
在Firefox 3中使用Firebug(强烈推荐),今天用于着色的CSS似乎是
.ui-state-highlight, .ui-widget-content .ui-state-highlight { background:#FFE45C url(../images/?new=ffe45c&w=1&h=100&f=png&q=100&fltr[]=over|textures/03_highlight_soft.png|0|0|75) repeat-x scroll 50% top; border:1px solid #FED22F; color:#363636; }
并且对于输入中的当前所选日期,它是
.ui-state-active, .ui-widget-content .ui-state-active { background:#FFFFFF url(../images/?new=ffffff&w=1&h=400&f=png&q=100&fltr[]=over|textures/02_glass.png|0|0|65) repeat-x scroll 50% 50%; border:1px solid #FBD850; color:#EB8F00; font-weight:bold; outline-color:-moz-use-text-color; outline-style:none; outline-width:medium; }
这些都来自jQuery UI CSS Framework