/partner/settings というバックエンド メソッドを呼び出して、次の 2 つのタスクのいずれかを実行するコードがあります。
- jQuery.load() メソッドが GET の場合、ダイアログの内容を返し、表示します
- この jQuery.load() メソッドが POST の場合、フォーム データを渡し、検証し、データベースに保存します。
私が直面している問題は、GET 操作になるはずの jQuery.load() を呼び出すと、代わりに POST が送信されることです。load() メソッドに POST データを渡していません。実際、最初に呼び出されたときは、期待どおりに GET を使用します。POST を使用するのは、次に呼び出されるときです。
.load() を .get() に変更して、これを修正しようとしました。どういうわけかまだ POST を実行しました (私のデバッグ コードは、実際に .get() メソッドを呼び出していることを示していますが、私の Chrome ネットワーク タブはそれを POST として記録しています)。
ご協力いただきありがとうございます。
$(document).ready(function() {
showPartnerSettings = function(e) {
window.gEnvPath = envPath;
e.preventDefault();
console.log(e);
var post = (e.type == "click") ? false : true;
if($("#partner-settings-form").length == 0) {
var $dialogForm = $("<div />");
console.log('new dialog');
} else {
var $dialogForm = $("#partner-settings-form").unbind("submit");
console.log('existing dialog');
}
$dialogForm.attr("id", "partner-settings-form")
.append($loading.clone());
if(e.type == "submit") { . . . }
else //load new dialog form content
{
var partnerId = e.data.partnerId;
$dialogForm.load(window.gEnvPath + "/partner/settingsdialog?partnerid="+partnerId, function(){
$("#partner-settings-form").css("display", "block");
console.log($dialogForm);
$dialogForm.dialog({
title: "Partner Settings",
modal: false,
resizable: false,
width: 580, //CPB 04.11.13
position:['middle',130],
dialogClass: "partner-settings-class",
create: function() {
$("#add_postage").on("click", function(e){ . . . })
},
close : function(){
var dialogid=$(this).parent("div").attr("id");
$("#Tabs ul li."+dialogid).remove();
$(this).remove();
$("#alertmod").remove();
//$link.removeClass('preventclick');
}
})
.dialog("open")
.css("display", "block");
$(document).on("submit", ".sign_in_form", function(event) {
event.preventDefault();
return showPartnerSettings(event);
});
return false;
});
}
return false;
};