3

当使用jQuery对话框时,我发现了一个有趣的错误,其中对话框中的第一个字段是日期选择器。在IE中打开对话框时,第一个字段的日期选择器会自动打开。这在其他浏览器中不会发生。有谁知道如何防止这种情况发生在IE中?jQuery:日期选择器开始在对话框中打开,只在IE中

我曾尝试在document.ready部分放入.blur(),但这并不奏效。有没有其他人看到这个问题?

我使用MVC3和IE8

回答

1

实际上有与@ ManseUK的解决的问题;当对话框打开,并且用户点击日期选择器的文本框时,它不会第一次打开。该解决方案应适用于所有预期的情况。

我不知道作者是谁,但我发现CleanCode.co.nz

HTML

<input type="button" value="Show Popup" id="button"/> 
<div id="popup"> 
    <div> 
     Date: <input type="text" id="datePicker3" > 
    </div> 
    <div> 
     Name: <input type="text" id="UserName"> 
    </div> 
</div>​ 

解决jQuery的

$(document).ready(function() { 
    $("#popup").dialog({ 
     autoOpen: false, 
     resizable: false, 
     height: 300, 
     width: 400, 
     modal: true, 
     open: function() { 
      $('#datePicker3').removeAttr("disabled"); 
     }, 
     close: function() { 
      $('#datePicker3').datepicker('hide'); 
     } 
    }); 

    $("#datePicker3").datepicker(); 

    $("#button").click(function() { 
     $('#datePicker3').attr("disabled", true); 

     $("#popup").dialog("open"); 
    }); 
});​ 

Working JSFiddle

*您需要启用jQuery UI,然后单击运行

+1

完美。这在IE和Chrome中工作得很好。愚蠢的是,它必须是这样,但自从IE什么时候出现错误消息? – mtmurdock

相关问题