jQuery UI datepicker 在对话框中自动打开

2022-01-15 00:00:00 dialog jquery ajax jquery-ui datepicker

我有一个在 jQuery 对话框对象中使用的日期选择器.对话框内容的来源是使用 .load() 加载的.在对话框中,我创建了一个脚本,该脚本为文本输入创建了一个日期选择器.

I have a datepicker which is used within the jQuery dialog object. The source of the dialog's content is loaded using .load(). Within the dialog I created a script which creates a datepicker for the text input.

$("#date").datepicker({ ... });

当我第一次打开对话框时 - 一切正常,但如果我关闭它并再次打开,日期选择器会自动触发(并且没有像 autoOpen:false 这样的选项)有什么方法可以防止这种情况发生吗?或者我做错了什么?

When I open the dialog for the first time - everything is okay, but if I close it and reopen again, the datepicker is triggered automatically (and there's no such an option like autoOpen:false) Is there any way of preventing this or what am I doing wrong?

推荐答案

我遇到了这个确切的问题,并且只对 tvanfosson 的技术稍作改动就解决了它.出于某种原因,我不得不手动将点击"事件附加到日期选择器字段,如下所示.

I had this exact problem and solved it with only a slight variation on tvanfosson's technique. For some reason I had to manually attach the "click" event to the datepicker field as below.

 $('#dialog').dialog({
 open: function(event, ui) {
    $(ui).find('#date').datepicker().click(function(){
        $(this).datepicker('show');
    });
 },
 close: function(event,ui) {
    $(ui).find('#date').datepicker('destroy');
 }});

(抱歉——我更愿意将此作为评论发布到 tvanfosson 的帖子,但没有必要的代表.)

(Sorry--I would've preferred to post this as a comment to tvanfosson's post but don't have the requisite rep.)

相关文章