1
IE9以外のすべてのブラウザで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/
は私がつかむやすくするためにDatePickerの入力にクラスを追加しました:
暗闇の中で私のスタブよりも優れています。 – Pablo