Jquery AJAX函数问题

Jquery AJAX函数问题,jquery,Jquery,我使用一个函数通过Ajax发布结果。当我测试函数是否被调用时,我添加了一个警报。一切正常,但一旦我删除警报,我的结果就不会发布。。。是什么引起的 function SendInvitesF(invType, invWho, projID) { $.ajax({ url: "ajax.php", type: POST", data: "op=sendInvites&inviteMsgType="+invType

我使用一个函数通过Ajax发布结果。当我测试函数是否被调用时,我添加了一个警报。一切正常,但一旦我删除警报,我的结果就不会发布。。。是什么引起的

function SendInvitesF(invType, invWho, projID) {            
    $.ajax({
        url: "ajax.php",
        type: POST",
        data: "op=sendInvites&inviteMsgType="+invType+"&invitees="+invWho+"&proj="+projID   
    });
    alert("test "+projID) // test alert <<<
}

$("#btnSend").click(function() {
    if($("#customMsg").attr("checked")) {               
        var invType = "custom";
    } else {
        var invType = "default";
    }
    var invWho = $(".radioB:checked").val();
    var projID = $("#testID").val();

    SendInvitesF(invType, invWho, projID);
});
函数SendInvitesF(invType,invWho,projID){
$.ajax({
url:“ajax.php”,
类型:邮政“,
数据:“op=sendInvites&inviteMsgType=“+invType+”&invites=“+invWho+”&proj=“+projID
});

alert(“test”+projID)//test alert我怀疑您正在onclick或onsubmit事件中调用此函数,并且您没有通过返回false来取消默认操作。此外,您没有正确地对任何参数进行url编码。为此,请使用数据哈希:

function SendInvitesF(invType, invWho, projID) {            
    $.ajax({
        url: 'ajax.php',
        type: 'POST',
        data: { 
            op: 'sendInvites',
            inviteMsgType: invType,
            invitees: invWho,
            proj: projID   
    });
    return false;
}
然后,如果您在锚的onclick中调用此函数:

// I guess btnSend is a submit button or an anchor so make sure
// you cancel the default action by returning false from the click
// callback
$('#btnSend').click(function() {
    if ($('#customMsg').attr('checked')) {               
        var invType = 'custom';
    } else {
        var invType = 'default';
    }
    var invWho = $('.radioB:checked').val();
    var projID = $('#testID').val();

    return SendInvitesF(invType, invWho, projID);
});

请注意,我们如何返回false,从而取消默认操作,这将是一个重定向,当然不会留下执行AJAX请求的时间。当您在函数末尾发出警报时,这将停止任何脚本执行,AJAX调用有时间命中服务器。

您是否尝试在成功时添加警报ess handler?为了确保ajax调用确实成功通过?还有,像Darin一样,可能你在onClick上使用了,但忘记取消了默认操作。

@santa,是的,我明白了。正如我在回答中所说的,请确保返回false。单击handler。哇,这是有意义的…但是,现在当我单击它时,它似乎没有出现这个函数被调用了…我认为第10行是“}”。我还注意到你把所有的引号都改成了singe。我的代码中使用了PHP代码,并使用了“代替”。这可能是个问题吗?@santa,这只是我在javascript中使用单引号的习惯。如果愿意,可以使用双引号。这不是问题,也不是造成问题的原因。哦,它确实发布数据,但重定向显然不起作用。如何生成POST数据并在事后重定向?