0

我有一个 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 或类的输入字段?我希望的是从局部视图运行脚本。

//约翰

4

1 回答 1

0

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

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

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

此外,请参阅jQuery UI API 文档

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

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

有关事件委托的更多信息,请查看 jQuery 文档中的此页面

于 2013-09-30T08:42:00.923 回答