$('#dialog .join').click(function () {
email = $.trim($(this).parent().find('.email').val());
if (email != "Email Address" && email.length > 5) {
$.ajax({
url:'/newsletter/join',
data:{ 'email':email, 'pid':$('#dialog .pid').html().trim() }
});
$("#dialog").dialog('destroy');
if(link){
$('.job .outbound').off('click');
}
return true;
}
return false;
});
これは ajax リクエストを発行するコードです。デバッグ モードでは、サーブレットへの最初のリクエストが
$('#dialog .join').click(function () {
そして、すべてのステップを経て、最終的に 2 番目のリクエストを作成します。
最初の要求が体内に入るとすぐに行われる理由を理解するのにまだ混乱していますが、
flag を使用して制御できる可能性がありますが、このユーティリティを他のフォームに使用しており、正常に動作しています
以下は私が使用している完全な機能です
function showDialog(link) {
$("#dialog").dialog({
modal:true,
height:'auto',
width:'auto',
resizable:false,
closeOnEscape:false,
dialogClass:'newsletter',
open:function (event, ui) {
$('#dialog .email').css("color", "#A9A9A9").val('Email Address').blur().one("focus", function () {
$(this).val("").css("color", "black");
});
$('#dialog .join').click(function () {
email = $.trim($(this).parent().find('.email').val());
if (email != "Email Address" && email.length > 5) {
$.ajax({
url:'/newsletter/join',
data:{ 'email':email, 'pid':$('#dialog .pid').html().trim() }
});
$("#dialog").dialog('destroy');
if(link){
$('.job .outbound').off('click');
}
return true;
}
return false;
});
}
}).keyup(function (e) {
if (e.keyCode == 13) {
return false;
}
});
}