【问题标题】:Closing a dynamically loaded jQuery dialog关闭动态加载的 jQuery 对话框
【发布时间】:2013-09-30 08:38:32
【问题描述】:

我有一个 ASP.NET MVC 3 web,它打开一个带有部分视图内容的 jquery 对话框。

  div.load(baseUrl + 'Home/AssignWarehouse?warehouseId=' + warehouseId + '&countryId=' + countryId).dialog(
        {
            width: 400,
            height: 250,
            modal: true,
            close: function (even, ui) {
                refreshMatrix(warehouseId, countryId);
            }
        }
    );

加载的视图是一个简单的复选框列表和一个刚刚添加到表单中的保存按钮。

局部视图。我还没有添加任何脚本。

@model AjaxConcept2.Controllers.AssignWarehouseModel

<div style="width:49%; display: inline-block">

    <h3>Country</h3>
    @Html.DisplayFor(model => model.CountryText)

</div>

<div style="width:49%; display: inline-block;">


    <h3>Warehouse</h3>
    @Html.DisplayFor(model => model.WarehouseText)

</div>

<div style="margin-top: 20px;">

    <input type="checkbox"/> Option A<br/>
    <input type="checkbox"/> Option B<br/>
    <input type="checkbox"/> Option C

</div>

<input type="button" value="Save"> 

我的问题是,我可以通过简单的方式从该保存按钮关闭对话框吗?我想运行在局部视图中定义的脚本,然后关闭对话框。我对 jquery 和 jquery.ui 不太熟悉。 :)

保存按钮在局部视图中,动态加载,点击它是触发器。

编辑:

我是否需要保持所有 javascripts 全局并跟踪具有唯一 ID 或类的输入字段?我希望从局部视图运行脚本。

// 约翰

【问题讨论】:

  • 保存按钮处理程序在哪里
  • 是否可以为您的对话框选项使用buttons 属性?您应该查看它,以防它们不一定需要在您加载的内容中。 api.jqueryui.com/dialog/#option-buttons
  • 我仍然没有看到保存按钮。

标签: jquery asp.net-mvc-3


【解决方案1】:

调用close 方法关闭任何对话框。

// If your div is still known or available
div.dialog('close');

// Any element which is a dialog
$('.element').dialog('close');

另外,请参阅jQuery UI API documentation

您可以将保存按钮的事件委托给document。假设您的保存按钮具有类btn-save。您可以执行以下操作:

$(document).on('click', '.btn-save', function () {
    $('.my-dialog').dialog('close');
});

有关事件委托的更多信息,check this page in the jQuery documentation

【讨论】:

  • 不回答问题。用户特别要求澄清如何使用在其动态加载的局部视图中指定的保存按钮执行此操作。
  • 删除了反对票,但我不确定这是否适用于动态加载的内容。
  • 这就是我们有事件委托的原因。通过将事件处理程序委托给document,您甚至可以从动态添加的元素中捕获事件。
猜你喜欢
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 2011-08-01
  • 2012-10-06
  • 1970-01-01
相关资源
最近更新 更多