我有一些 jQuery 用于打开一个弹出窗口,可以在其中将新的发货人添加到数据库中。原始窗口有一个包含所有当前发货人的下拉列表。当您在弹出窗口中添加新发货人时,该窗口将关闭,然后原始窗口重新加载下拉列表的数据并选择刚刚创建的数据。
所有这些都完美无缺。我的问题是,当您填写表单的其余部分并提交时,它会传递一个空字符串而不是所选项目的值。这是因为它是 ASP.Net 脚本吗?我对 ASP.Net 了解不多,但我从来没有遇到过 PHP 的这个问题。有人可以解释我如何在不刷新整个页面的情况下刷新下拉列表,并且仍然让列表在提交表单时传递它的值吗?
我在打开弹出窗口并重新加载列表的页面上的 javascript 代码如下:
function openConsignorAdd() {
var url;
url = "/admin/consignor/csAdd.aspx";
window.open(url, "WizardWindow", "width=400,height=500,resizable=yes,scrollbars=yes");
}
function loadNewAdded(fn, cs_txt_id) {
// var pagePath = window.location.pathname;
var pagePath = "/admin/getNewList.asp";
var paramList = "data=";
//Call the page method
$.ajax({
type: "POST",
url: pagePath + "?type=" + fn + "&cs_txt_id=" + cs_txt_id,
data: paramList,
success: function (data) {
//create jquery object from the response html
var $response = $(data);
//query the jq object for the values
var results = $response.filter('select#results').html();
if (fn == "consignor") {
$("select#<%=itemConsigner.ClientID%>").html(results);
} else if (fn == "cdr") {
$("select#<%=itemCDR.ClientID%>").html(results);
}
},
error: function () {
alert("Failed To Refresh!\n\nYou must manually refresh the page.");
}
});
}
我在弹出页面上刷新列表的 javascript 代码是:
function refreshOpener(cs_txt_id) {
window.opener.loadNewAdded("consignor", cs_txt_id);
}
这两个都有效。为了获得我的下拉列表的值,我只需使用:
if (itemConsigner.SelectedValue.ToString() != string.Empty)
{
itemCsTxtId = itemConsigner.SelectedValue.ToString();
}
我的下拉列表是:
<asp:DropDownList ID="itemConsigner" runat="server" TabIndex="1"></asp:DropDownList>
如果您需要更多信息,请告诉我。任何帮助表示赞赏。