我很感激你对这个的帮助。我现在一直在寻找一个小时的解决方案而且我无法让它工作。
我有两个文件" editor.php"和" functions.php"。
所以我得到了这个Jquery UI datepicker,我正在初始化并在编辑器中为保留文本字段提供一个唯一的ID .php
$(function() {
$('input[name=Date]').attr('id', 'Date' + '_' + $("#Id").val());
$("#Date_" + $('#Id').val()).datepicker({
dateFormat: "dd.mm.yy",
changeMonth: true,
showWeek: true
});
}
我的对话框打开功能在functions.php
中function openDialog()
{
var customDialog = $('#customDialog').dialog( {
open: function () {
$('body').addClass('stop-scrolling');
$('.ui-widget-overlay').addClass('custom-overlay');
},
beforeClose: function () {
$('body').removeClass('stop-scrolling');
$('.ui-widget-overlay').removeClass('custom-overlay');
},
autoOpen: false,
modal: true,
show: {
effect: "fade",
duration: 400
},
hide: {
effect: "fade",
duration: 400
},
} );
customDialog.load('editor.php');
customDialog.dialog("open");
}
还有那个functions.php我得到了持有Dialog的div
<div id="customDialog" title="Editor"></div>
我的对话框中有一个表格,我在editor.php中构建。对话框和我的表单数据正确显示。现在我在我的一个文本字段中有一个日期选择器,在该对话框中可以正常工作。
现在我在该对话框中有一个链接,它打开另一个对话框并关闭旧对话框,它也可以正常工作。我现在的问题是,日期选择器将不再显示,但我确定它已存在,因为我可以单击它并按Enter键,当前日期将显示在该文本字段上。
我发现我的旧对话框没有正确关闭,我的日期选择器总是绑定到我的第一个Dialog中的日期文本字段(即使我再也看不到Dialog了)。
$("#customDialog").dialog('close');
这不起作用:&#34;在初始化之前无法在对话框上调用方法;试图调用方法&#39;关闭&#39;&#34;出现。所以我使用了以下有用的代码(但我确信它没有被正确关闭并且仍然隐藏在某个地方)
$('.ui-dialog-titlebar-close').click()
将datepicker-ui的z-index更改为非常高的值无效
我的问题是:关闭对话框的正确方法是什么。我无法让$("#customDialog").dialog('close');
工作
请询问是否有任何不清楚的地方。提前谢谢!
修改
在customDialog.load中添加了缺少的撇号(&#39; editor.php&#39;);并编辑问题以使其更清晰
答案 0 :(得分:0)
好的,我找到了解决方法。我希望它可以帮助有需要的人。 我正在使用Jquery 1.11.1,似乎jquery-ui.js文件中缺少一行代码。 您需要将这一行添加到该特定位置的jquery-ui.js中。 即使您不刷新页面,它也会重新初始化您的日期选择器。
/* Initialise the date picker. */
if (!$.datepicker.initialized) {
$(document).mousedown($.datepicker._checkExternalClick)
.find(document.body).append($.datepicker.dpDiv); // added line
$.datepicker.initialized = true;
}