0

Я был бы признателен за вашу помощь в этом. Я искал исправление в течение нескольких часов, и я просто не могу заставить его работать.JQuery ui datepicker не работает должным образом во втором Dialog

У меня есть два файла "editor.php" и "functions.php".

Так что я получил это DatePicker Jquery UI, который я инициализации и дает холдинговая TextField уникальный идентификатор в editor.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 я получил DIV, который держит диалог

My Dialog имеет форму, в которой я создаю редактор.php. Диалог и данные моей формы Отображаются правильно. Теперь у меня есть datepicker на одном из моих текстовых полей в этой форме, который отлично работает в этом диалоге.

Теперь у меня есть ссылка в этом диалоге, которая открывает другой диалог и закрывает старый, который отлично работает. Моя проблема теперь в том, что datepicker больше не будет отображаться, но я уверен, что он есть, потому что я могу нажать на него и нажать enter, и текущая дата будет отображаться в этом текстовом поле.

Я узнал, что мои старые диалоги не закрываются должным образом, и мой datepicker всегда связан с полем даты и текста в моем первом диалоге (даже если я больше не вижу диалог).

$("#customDialog").dialog('close'); 

это не сработало: «не может вызывать методы диалога до инициализации, попытка вызвать метод„закрыть“» показывает вверх. Таким образом, я использовал следующий код, который вроде работал (но я уверен, что она не закрыта, и еще где-то скрыта)

$('.ui-dialog-titlebar-close').click() 

Изменения Z-индекса Datepicker-интерфейс к чему-то очень высокому не помогло

Мой вопрос: как правильно закрыть диалоговое окно. Я не могу получить $("#customDialog").dialog('close'); для работы

Пожалуйста, спросите, не является ли что-то непонятным. Заранее спасибо!

EDIT:
добавлен отсутствующий апостроф в customDialog.load ('editor.php'); и отредактировал вопрос, чтобы сделать его более понятным

+0

Примечание стороны, у вас есть опечатка в 'customDialog.load ('editor.php);' (отсутствующий закрытие ''') – j08691

+0

Спасибо, просто опечатка, что произошло во время копирования вставив мой код. –

ответ

0

Хорошо, я нашел решение этого. Надеюсь, это поможет кому-то в этом нуждается. Я использую JQuery 1.11.1, и кажется, что в файле jquery-ui.js отсутствует код кода. Вам нужно добавить эту строку в свой jquery-ui.js в этом конкретном месте. Он будет повторно инициализировать ваш datepicker, даже если вы не обновите свою страницу.

/* Initialise the date picker. */ 
    if (!$.datepicker.initialized) { 
     $(document).mousedown($.datepicker._checkExternalClick) 
     .find(document.body).append($.datepicker.dpDiv); // added line 
     $.datepicker.initialized = true; 
    } 
Смежные вопросы