我有以下HTML
<tr>
<td class="label" valign="top">
Affiliate Party
</td>
<td class="field">
<input type="hidden" name="ctl00$MainContent$ExternalAccountAttributes$AffiliatePartyId" id="AffiliatePartyId" />
<input name="ctl00$MainContent$ExternalAccountAttributes$AffiliatePartyName" type="text" id="AffiliatePartyName" class="PartyLookup" />
</td>
</tr>
以及以下Javascript / jQuery
$(".PartyLookup").after("<img src='Images/book_open.png' class='PartyLookupToggle' style='padding-left:4px;' />");
$(".PartyLookupToggle").click(function () {
window.open("PartySearch.aspx", "PartySearch", "width=400,height=50");
return false;
});
我需要能够使用class =“PartyLookup”标记任何PartyId输入字段,以便它将修改DOM并将图像包含在输入字段旁边。弹出窗口返回数据以填充隐藏字段和文本字段,但由于click()是通用的,我需要传递输入字段的ID。我不知道该怎么做。有什么建议吗?
答案 0 :(得分:24)
父页面上的脚本:
$(".PartyLookupToggle").click(function () {
var id = $(this).prev().prev().attr("id");
var name = $(this).prev().attr("id");
var url = "PartySearch.aspx?id=" + id + "&name=" + name;
window.open(url, "PartySearch", "width=400,height=50");
return false;
});
子页面上的脚本:
// Get the values from the URL using the jquery.query plug-in
var id = $.query.get("id");
var name = $.query.get("name");
// Get the values from the drop down
var newPartyId = $("#ddlMatchingParties").val();
var newPartyName = $("#ddlMatchingParties option:selected").text();
// Set them to the parent window
window.opener.$("#" + id).val(newPartyId);
window.opener.$("#" + name).val(newPartyName);
// Close the popup
window.close();
答案 1 :(得分:5)
使用jQuery非常简单,在你的子窗口(弹出窗口)中调用你的父窗口对象:
$("#txtCodCliente", opener.window.document).val("VALUE TO "); //assign
$("#btnSelCliente", opener.window.document).click();
使用opener.window.document
我们告诉jQuery该对象在窗口中打开弹出窗口。
答案 2 :(得分:2)
查看此教学文章:http://www.plus2net.com/javascript_tutorial/window-child3.php
基本上,您需要在子窗口的表单中执行此操作。你将传递一个这样的值:
opener.document.f1.p_name.value="Any value";
其中f1
是父窗口中表单的ID,p_name
是表单中字段的名称。
一旦你在父母的一个字段中获得了价值,你就可以随心所欲地做任何事情。
编辑:
要将信息传递给子窗口,最简单的方法可能是通过查询字符串,然后从子窗口中读取查询字符串。在这种情况下,可能类似于:
$(".PartyLookupToggle").click(function () {
window.open("PartySearch.aspx?id=" + $(this).prev().attr('id'), "PartySearch", "width=400,height=50");
return false;
});