我已经成功地在 jQuery 对话框中打开了一个 html 页面。我还向它传递了一个名为“vendorid”的数据,但不知道如何在打开的 html 页面中检索它。
$('#btnShowSupplierStats').click(function () {
showUrlInDialog('../supplierstats.htm?vendorId=' + $(this).attr('vendorId')); return false;
//showUrlInDialog('../Default2.aspx'); return false;
});
function showUrlInDialog(url) {
var vid = $(this).attr('vendorId')
var tag = $("<div id='statsDiv' vid ='"+ vid +"'></div>");
$.ajax({
url: url,
success: function (data) {
tag.html(data).dialog({ show: "fadein", hide: "fadeout",
modal: true, minHeight: 550, minWidth: 800, autoOpen: false,
close: function (event, ui) { $(this).remove(); }, buttons: [{
text: "Close", click: function () { $(this).dialog('close');
return false; } }] }).data("vendorid", vid).dialog('open');
return false;
}
});
}
更新:Farrukh 的答案可以完成这项工作(即他提到的第二个选项,因为我使用的是 100% 客户端方法)。但是我没有将要传递的数据存储在隐藏字段中。相反,我使用了以下方法,它也始终有效:
当你要通过 jQuery 打开对话框时,在此之前,设置作为对话框打开器的按钮的属性。就我而言,我在此按钮上设置了一个名为“供应商”的属性。假设开启按钮的 id 是“btnOpenVendorDialog”。所以需要使用下面的代码。
$('#btnOpenVendorDialog').attr('vendorid', 'Vendor1234'); //在这里打开你的对话框....
2.然后,在对话框窗口中打开的html页面中,我可以轻松地检索此属性而没有任何问题。
var vid = $('#btnOpenVendorDialog').attr('vendorid');
而已。你已经准备好用这个传递的数据做任何你想做的事情了。