jQuery datepicker губи фокус след .(показване)

Използвам инструмента за избор на дата на jQuery UI. Когато избирам „от дата“, искам автоматично да отворя инструмента за избор на дата „до дата“. И така, извиквам .datepicker("show"). Инструментът за избор на „към дата“ се показва за секунда и веднага изчезва. Изненадващо, ако отида в друго приложение и след това се върна и фокусирам върху прозореца на браузъра, се показва инструментът за избор „към дата“. Също така се опитах да добавя $('#toDate').focus(); но не помогна.

$( ".fromDatePicker" ).datepicker({
    defaultDate: "+1w",
    dateFormat: 'dd/mm/yy',
    altFormat: 'yymmdd',
    altField: "#fromDateFormatted",
    numberOfMonths: 2,
    showOn: "both",
    buttonImage: "images/calender_icon_a1.jpg", 
    buttonText: "open calendar",
    buttonImageOnly: true,
    onSelect: function( selectedDate ) {
        $('#toDate').datepicker( "option", "minDate", selectedDate );
        $('#toDate').datepicker("show");
        //$('#toDate').focus();  //commented cause it's not working
    }
});

person Dan    schedule 26.09.2011    source източник
comment
Вижте дали това помага: stackoverflow. com/questions/2386718/   -  person yoda    schedule 26.09.2011


Отговори (1)


Причината за мигането е, че show ще бъде извикан преди minDate да завърши. Това би объркало инструмента за избор на дата при задействане на събитие beforeShowDay точно преди показването на инструмента за избор.

Едно донякъде хакерско решение е да забавите повикването, за да покажете инструмента за избор на дата. Например нещо като следното би свършило работа:

onSelect: function( selectedDate ) {
    $('#toDate').datepicker( "option", "minDate", selectedDate );
    setTimeout(function() { $('#toDate').datepicker("show") }, 50);
}

Вижте това в действие: http://jsfiddle.net/william/PVuTC/2/.

person William Niu    schedule 26.09.2011