我可以使用preventDefault(); 在ajax回调中?

Nic*_*ick 12 javascript validation jquery

我正在做一些表单验证,而我正在努力完成我想要完成的任务.我希望能够在字段的模糊处验证我的邮政编码,但也可以调用相同的函数来验证表单提交时的zip,并防止在邮政编码无效时提交表单.我的代码(一般来说)就是这样的.

function validateZipCode(event){
    $.getJson(
        url,
        params,
        function(data){
            if(data.response === false){
                someError.show();
                event.preventDefault(); //stop the form from being submitted
            }    
        }
    );
}

$('#someForm').submit(function(event){
    validateZipCode(event);
});

$('#zipInput').blur(function(event){
    validateZipCode(event);
})
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用这个jQuery中的方法将更多参数传递给回调帖子,但我似乎仍然无法完成我需要的东西.任何帮助表示赞赏.

Rob*_*ert 8

不,当AJAX事件的回调触发时,事件将已经冒泡并且表单已提交.您可以实现此目的的一种方法是从提交中取消表单,然后如果它从AJAX请求传递要求,则手动提交.