2012-01-28 2 views
1

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/

내가 잡아 쉽게 만들기 위해 날짜 선택기 입력에 클래스를 추가 :

답변

1

그래서이 시도해 집에서 IE9를 사용할 필요가 없습니다.

$(function() { 

$(document).on("dialogcreate", "#dlg", function() { 
    $(".date_picker").datepicker(); 
    $(".date_picker").datepicker("disable"); 
}); 

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: function(event, ui) { 
      $("div#dlg form input").blur(); //takes focus off inputs 
      $(".date_picker").datepicker("enable"); 
     }, 
     close: function(event, ui) { 
      $(".date_picker").datepicker("disable"); 
     } 
    }); 

}; 

}); 
+0

어둠 속에서 내 찌르기보다 우수합니다. – Pablo