2013-11-08 2 views
1

Я использую jQuery UI datepicker.Ошибка открытия jQuery UI datepicker с текущей датой

<input id="sent_date" type="text" value="01/01/2001"> 

Инициализировано следующим образом.

$("#sent_date").datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    dateFOrmat: "mm/dd/yy", 
    defaultDate: new Date() 
}); 

Теперь датапикер открывается в «01/01/2001». Если я изменю свой JavaScript вроде этого

$("#sent_date").datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    dateFOrmat: "mm/dd/yy", 
    defaultDate: new Date() 
}).datepicker("setDate", 0); 

Теперь датапикер открывается на «11/08/2013». Но мое текстовое поле также изменится на "11/08/2013"
JSFiddle: http://jsfiddle.net/codovations/3KutM/

Итак, мой вопрос,

Как я могу открыть свой DatePicker с сегодняшнего дня (11/08/2013) , без изменения отображаемого текстового поля (01/01/2001)?

+0

Установите дату в 'beforeShow в Datepicker в:' функции. – Barmar

ответ

0

Используйте опцию beforeShow, чтобы обновить дату открытия даты.

$("#sent_date").datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    dateFOrmat: "mm/dd/yy", 
    beforeShow: function(el, dp) { 
     dp.datepicker("setDate", 0); 
    } 
}); 
+1

Прошу прощения, если мой вопрос был недостаточно ясен. '$ (el) .datepicker (" setDate "," 0 ") ;. datepicker (" setDate "," 0 ");' wont work. Я не хочу изменять 'input.value' – naveen

+0

. Я не уверен, есть ли способ отделить дату, которая находится во вводе с даты, когда открывается datepicker. – Barmar

0

Похоже, что в JQuery UI DatePicker не существует метода afterShow. Поскольку обезьяна-исправление казалась немного надуманной, в итоге использовалось событие beforeShow и onClose в тандеме.

var elm = {}, oldDate = ""; 
$(".dp-date").datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    dateFOrmat: "mm/dd/yy", 
    defaultDate: new Date(), 
    beforeShow: function (el, dp) { 
     elm = $(el); 
     oldDate = $.trim(elm.val()); 
     elm.val(""); 
    }, 
    onClose: function (dateText, dp) { 
     if ($.trim(elm.val()) === "") { 
      elm.val(oldDate); 
     } 
     oldDate = ""; 
    } 
}); 

JSFiddle: http://jsfiddle.net/codovations/4KSKr/

Смежные вопросы