1
  $('#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 请求的代码,在调试模式下,我看到对 servlet 的第一个请求是在

  $('#dialog .join').click(function () { 

然后它通过所有步骤最终发出第二个请求,

我仍然很困惑为什么第一个请求一进入身体就发出,

我可能有机会使用 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;
        }
    });

}

4

0 回答 0