【发布时间】:2015-07-13 17:51:00
【问题描述】:
我正在使用 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);
});
})
当我单击表列中的“公司名称”超链接时,弹出窗口将自动关闭。我编写了以下代码来关闭弹出窗口并检索父窗口的值。
var val = '';
$("a.link").live('click', function (e) {
e.preventDefault();
val = this.id;
$('#ListDialog').dialog('close');
});
但是弹出窗口没有关闭。如果我删除“e.preventDefault()”语句,父窗口将被刷新,其中已有的数据将消失。 这是不对的! 从弹出窗口中检索值后,如何在不重新加载父窗口的情况下关闭弹出窗口。
提前致谢。 帕萨
【问题讨论】:
标签: jquery asp.net-mvc popup parent