event.preventdefault()在jquery中不起作用

时间:2016-06-22 04:22:34

标签: jquery event-handling preventdefault

我有以下代码

$(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();不工作?

1 个答案:

答案 0 :(得分:0)

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

if (breakout == true){
    return;
}