关闭弹出窗口而不使用jQuery

时间:2015-07-13 09:41:25

标签: jquery asp.net-mvc popup parent

我正在使用MVC和Jquery。

我的要求如下: 1.链接将打开一个弹出窗口。 2.在弹出窗口中将有一个搜索选项,搜索结果将显示在表格中。 3.表格的一列将被超链接,单击超链接将关闭弹出窗口并检索与超链接相关的值,并将其显示在父窗口的文本字段中。

我已经编写了以下代码来打开弹出窗口:

<script type="text/javascript">
    $(document).ready(function () {
        $("#lnkSupplier").live("click", function (e) {
            e.preventDefault(); //use this or return false
            var url = $(this).attr('href');
            $("#ListDialog").dialog({
                title: 'Find Supplier',
                autoOpen: false,
                resizable: false,
                height: 650,
                width: 700,
                show: { effect: 'drop', direction: "up" },
                modal: true,
                draggable: true,`enter code here`
                open: function (event, ui) {
                    $(this).load(url);

                },
                close: function (event, ui) {
                    $(this).dialog('close');
                }
            });

            $("#ListDialog").dialog('open');
            return false;
        });
    });
</script>

我编写了以下代码来获取Json数据并将它们放在弹出窗口的表中。

<script type="text/javascript">
    $(document).ready(function () {
        $('#btnSubmit').click(function () {
            $.getJSON('/Supplier/SupplierList/' + $('#CompanyName').val(), function (data) {
                var items = "<table class='gridtable'><tr><th class='CompanyName'>Company Name</th><th class='ContactName'>Contact Name</th><th class='ContactTitle'>Contact Title</th><th class='Country'>Country</th></tr>";
                $.each(data, function (i, supplier) {
                    items += "<tr><td>" + "<a id='" + supplier.SupplierID + "' href='Create/'" + supplier.SupplierID + " class='link' >" + supplier.CompanyName + "</a></td><td>"
                        + supplier.ContactName + "</td><td>"
                        + supplier.ContactTitle + "</td><td>"
                        + supplier.Country + "</td></tr>";
                });
                items += "</table>";
                $('#Suppliers').html(items);
            });
        })

当我点击表格列中的超级链接时,&#39; CompanyName&#39;弹出窗口将自动关闭。我编写了以下代码来关闭弹出窗口并检索父窗口的值。

var val = '';
        $("a.link").live('click', function (e) {
            e.preventDefault();
            val = this.id;
            $('#ListDialog').dialog('close');

        });

但弹出窗口并没有关闭。如果我删除&#34; e.preventDefault()&#34;声明父窗口将刷新,其中已有的数据将消失。 这是不对的! 如何在从弹出窗口中检索值后关闭弹出窗口而不重新加载父窗口。

提前致谢。 帕塔

1 个答案:

答案 0 :(得分:0)

jQuery('#simple-dialog-container').trigger('click');

试试这个,它不是最干净的解决方案,但在大多数情况下都是推荐的。