新しい荷送人をデータベースに追加できるポップアップウィンドウを開くために使用している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>
さらに情報が必要な場合は、お知らせください。どんな助けでも大歓迎です。