ASP.NET MVC3/JQuery 1.9.1/JQuery UI 1.10.2JQuery DatePicker работает только один раз и не показано во второй раз
У меня есть страница, на которой я открыть модальное диалоговое окно после нажатия на Ajax.ActionLink
. Внутри этого диалога у меня есть поле ввода и связанный с ним datepicker
. Когда я открываю диалог в первый раз, я могу нажать кнопку datepicker (или внутри связанного поля ввода, чтобы он получал фокус, showOn
установлен в both
), а datepicker показывает, как ожидалось. Я могу, пока модальный диалог открыт, делайте это так часто, как я хочу, датпикер показывает каждый раз. Когда я закрываю модальный диалог (через прикрепленный файл $("ui-widget-overlay").click(function(){...});
и затем снова его открываю, датапикер больше не работает, независимо от того, пытаюсь ли я нажимать на кнопку или в соответствующее поле ввода.
Я попытался отладить jQuery код и оба раза строки выполняемого кода одинаковы (и даже несмотря на то, что датапикер не появляется во второй раз, когда открывается диалог, запускаются методы jQuery) из того, что я вижу в отладчике. м полностью тупик, и методы, описанные в this post только помогли с точки зрения того, чтобы показать Datepicker в первый раз открывает диалоговое окно. Another post только кажется, связано с недоразумением хау showOn
настройки работы в.
Я также пытался уничтожить дампикера через $("#datepicker").datepicker("destroy");
при закрытии диалога - безрезультатно. Есть идеи?
Update
На "вызывающему странице":
$(document).ready(function() {
$("#popupDialog").dialog(
{
autoOpen: false,
modal: true,
open: function()
{
$("ui-widget-overlay").click(function()
{
$("#popupDialog").dialog("close");
}
}
});
});
[...]
@Ajax.ActionLink("Some text", "Action", "Controller", new AjaxOptions {
HttpMethod = "GET",
UpdateTargetId = "popupDialog",
InsertionMode = InsertionMode.Replace,
OnSuccess = "openPopup()"
})
[...]
function openPopup()
{
$("popupDialog").dialog("open");
}
[...]
<div id="popupDialog" style="display: none;"></div>
Действие контроллер очень прост и выглядит следующим образом:
public ActionResult Action()
{
MyActionModel myActionModel = new MyActionModel();
return PartialView(myActionModel);
}
- содержимое внутри модели добавляется динамически? – bipen
Вы имеете в виду содержание модального диалога? Он открывается через «Ajax.ActionLink», который обновляет целевой идентификатор (div) с помощью свойства «UpdateTargetId». Действие контроллера, возвращающее содержимое для модального диалога, запрашивает веб-службу, а затем возвращает частичное представление с заполненной моделью. – Gorgsenegger
Можете ли вы показать код html + js? – LeGEC