0

这是我的 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();
    }
});

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

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

4

3 回答 3

0

你必须传递e给你的函数:

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

此外

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

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

于 2013-10-17T14:02:39.407 回答
0

只是 return false...result在调用退出之前没有设置。

基本上,您不能根据 ajax 调用结果做出决定,因为稍后会发生这种情况(异步)。

于 2013-10-17T14:05:50.380 回答
0

e.preventDefault(); 你忘了传递 e 参数。利用

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

反而

于 2013-10-17T14:01:27.030 回答