我正在使用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;声明父窗口将刷新,其中已有的数据将消失。 这是不对的! 如何在从弹出窗口中检索值后关闭弹出窗口而不重新加载父窗口。
提前致谢。 帕塔
答案 0 :(得分:0)
jQuery('#simple-dialog-container').trigger('click');
试试这个,它不是最干净的解决方案,但在大多数情况下都是推荐的。