2012-01-28 11 views
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の入力にクラスを追加しました:

答えて

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

関連する問題