由jQuery提交的"太多递归"

Avi*_*Das -2 javascript ajax recursion jquery onsubmit

这是我的自定义提交功能,带有验证.单击"提交"后,它显示"太多递归".

$('#searchform').on('submit', function(e){
    var validateError = '';	
    var id = '';
    var fieldError = [];

    $('#searchform :input:text').each(function(){
        id = $(this).attr('id');
        validateError = jQuery.fn.validationEngine.loadValidation(document.getElementById(id));
        if (validateError) { 
            fieldError.push(id); 
        }
    });

    if (fieldError.length != 0) {
        return false;
    }
    else {
        $("form#searchform").submit();
        return true;
    }
});
});
Run Code Online (Sandbox Code Playgroud)

我的表格花了太多时间提交.在控制台中,我可以看到我的验证Ajax方法无限调用.我怎么能解决这个问题.

Vas*_*eev 6

问题是,如果表单有效,你调用.submit()它,.submit()再次调用你的回调,再次调用,等等,你得到一个无限的递归循环.

只需删除

else {
    $("form#searchform" ).submit();
    return true;
}
Run Code Online (Sandbox Code Playgroud)

完全它应该工作(你的回调不会返回任何东西,浏览器将继续默认的表单提交行为).