IE 9를 제외한 모든 브라우저에서 Datepicker를 첫 번째 요소로 사용하여 jQueryUI 대화 상자를로드하고 다시 열 수 있습니다. Datepicker가 첫 번째 요소 인 경우 대화 상자가 열리면 포커스를 받기 위해 Datepicker가 자동으로 실행됩니다. FireFox 및 Chrome에서이 동작을 억제 할 수 있습니다. IE 9는 여전히 생성시 Datepicker를 실행합니다.대화 상자의 jQueryUI Datepicker
다이얼로그에 대한 나의 개폐 기능은 다음과 같습니다 여기
open: function (event, ui) {
$('#Date').blur(); // kill the focus
if ($('#Date').hasClass('hasDatepicker')) {
$("#Date").datepicker('enable');
}
else {
$("#Date").datepicker();
}
},
close: function (event, ui) {
$("#Date").datepicker('disable');
}
'클릭'코드는 IE9의 문제를 보여주는
var dialogs = {};
$('#clicker').click(function (e) {
if (!dialogs['dlg']) {
loadAndShowDialog('dlg');
} else {
dialogs['dlg'].dialog('open');
}
});
var loadAndShowDialog = function (id) {
dialogs[id] = $('#dlg').clone().find('#ChangeMe').attr('id', 'Date').end()
.appendTo(document.body)
.dialog({ // Create the jQuery UI dialog
title: 'Testing',
modal: true,
resizable: true,
draggable: true,
width: 300,
open: see above
close: see above
};
jsfiddle입니다 http://jsfiddle.net/stocksp/DdRLp/8/
나는에 할 수있는 일 IE가 첫 번째 요소로 Datepicker를 두지 않는 짧은 행동을 취하게합니까? http://jsfiddle.net/DdRLp/10/
내가 잡아 쉽게 만들기 위해 날짜 선택기 입력에 클래스를 추가 :
어둠 속에서 내 찌르기보다 우수합니다. – Pablo