JQuery DatePicker, как выделить текущую дату ввода значения? - PullRequest
4 голосов
/ 18 января 2009

Я использую элемент управления datepicker для jquery, и все хорошо, за исключением того, что я не могу заставить его выделить текущее выбранное значение ввода (или текущую дату в этом отношении). Несмотря на то, что у меня есть правильное значение даты в моем текстовом вводе и я могу заставить указатель даты возвращать правильный месяц / год, я не могу заставить его выделить эту дату в календаре.

Вот мой код:

$('.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.

Есть идеи относительно проблемы?

Ответы [ 2 ]

11 голосов
/ 18 января 2009

Прежде всего, в каком браузере вы просматриваете средство выбора даты? Я заметил, что некоторые цвета дат / разделов в DatePicker выглядят иначе в IE6 по сравнению с более поздними браузерами ( Firefox 3, Chrome, IE7 ).

Например, IE6 игнорирует цвет фона для выходных.

Цвет фона текущей выбранной даты и сегодняшней даты контролируется с помощью CSS. CSS по умолчанию для last datepicker - это основная таблица стилей флоры , хотя я вижу, что есть новая версия / таблица стилей DatePicker (у меня нет ' На этом сайте на сайте jQuery на этой неделе еще не было прочитано должным образом.

Соответствующие имена по умолчанию классов в таблице стилей, для которых вам нужно будет изменить цвета фона:

 /* current input value background color */
.ui-datepicker-current-day
{
    background: #83C948
}
/* today's background color */
.ui-datepicker-today 
{
    background: #83C948
}

EDIT:

Если вы используете старый 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:

Похоже, что new datepicker использует немного другой CSS для окрашивания текущей выбранной даты и сегодняшней даты. В то время как предыдущая версия стилизовала элемент ячейки таблицы ( td ), новая версия стилизует элемент привязки ( a ) внутри ячейки.

Используя Firebug в Firefox 3 (настоятельно рекомендуется), 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

0 голосов
/ 09 декабря 2015

Это лучшее решение:

enter image description here

поле ввода, выберите неделю.

https://github.com/Prezent/jquery-weekpicker

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...