jQuery在与$ .ajax一起使用时阻止表单提交

时间:2013-10-17 13:57:34

标签: jquery

这是我的jQuery代码

$("#mappingForm").submit(function () {
    alert("map clicked");

    var mappedBdm = $("#mappedBDMs").val();
    var result = false;

    alert(mappedBdm);

    $.ajax({
        type: 'GET',
        url: '../../mapMOPBDM',
        data: {
            mappedBdm: mappedBdm
        },
        success: function (html) {
            if (html != "") {
                result = confirm(mappedBdm + " is already assigned to" + html + ". Do you want to continue ?");
                alert(result);
            }
        }
    });

    if (result == false) {
        e.preventDefault();
    }
});

显示的结果是错误的。但是表格仍然提交了???

可能是什么原因?什么是解决方案?

3 个答案:

答案 0 :(得分:0)

e.preventDefault();你忘了通过电子书。 使用

if (result == false) {
        return false;
 }

代替

答案 1 :(得分:0)

您必须将e传递给您的函数:

$("#mappingForm").submit(function (e) {

另外

if (result == false) {
    e.preventDefault();
}

在你的ajax成功回调之前执行

答案 2 :(得分:0)

只是返回false ... result未在呼叫退出前设置。

基本上你不能根据ajax调用结果做出决定,因为这会在以后发生(异步)。