Заимствуя и расширяя ответ Loktar, вы можете попробовать что-то вроде этого, заметьте, я проверял это только в FF10, но я не понимаю, почему это не будет работать в других браузерах.
$('.date-picker').datepicker({showOn: 'button'})
.next('button').addClass('date-picker-button-hidden')
.after($('<span/>')
.addClass('ui-icon').addClass('ui-icon-calendar').addClass('date-picker-icon'));
Обратите внимание, что в этом примере date-picker-button-hidden и date-picker-icon являются моими собственными классами, так как я не люблю стилировать классы jQuery CSS непосредственно. Примените следующий CSS:
span.date-picker-icon
{
display: inline-block;
z-index: -1;
position: relative;
left: -16px;
}
button.date-picker-button-hidden
{
opacity: 0.0;
filter: alpha(opacity=0);
height: 16px;
width: 16px;
margin: 0;
padding: 0;
}
Эффективно размещает обычный значок диапазона jQuery за кнопкой. Кнопка является полностью прозрачной / непрозрачной (через CSS), однако, поскольку она все еще находится над значком, нажатие значка вызывает событие нажатия кнопки.