【问题标题】:event.preventdefault() is not working in jqueryevent.preventdefault() 在 jquery 中不起作用
【发布时间】:2016-06-22 04:22:33
【问题描述】:

我有以下代码

$(document).on("click", ".create_new_sdf", function(e) {
    var protocol = $(".prtcl").val();
    var domain = $(".domain").val();
    if (domain == ""){
        alert("Domain should not be empty !");
        return
    }
    var breakout = false;
    var prdcn = $(".production").prop("checked");
    $(".newly_added_row").each(function(index){
        var wildcard = $(this).find('.worker_wildcard').val();
        if (wildcard == ""){
            alert("Worker wildcard should not be empty");
            breakout = true;
        }
    });
    if (breakout == true){
        e.preventDefault();
    }

    $.ajax({
        type: 'POST',
        url: '/***/******/',
        data:{******}
        dataType: "json",
        success: function(response){
            console.log(response);
            debugger;
            window.location.reload();
        },
        error: function(){
        },
    });

});

实际上,从上面的代码来看,breakout 变量为真,jquery 即将进入 if 循环,但它并没有以 e.preventDefault(); 停止,而是在下面的 ajax 函数中转到 success method,这不应该发生,所以出了什么问题这里以及为什么e.preventDefault();没有工作?

【问题讨论】:

  • 尝试使用return false;

标签: jquery event-handling preventdefault


【解决方案1】:

e.preventDefault() 不会中断/从您的函数调用中返回。如果你想完成你的函数执行,然后调用return

if (breakout == true){
    return;
}

【讨论】:

    猜你喜欢
    • 2016-01-16
    • 2019-04-14
    • 2012-12-17
    • 2022-01-02
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多