在呼叫AJAX时,如何尊重客户端验证



我想进行ajax调用,然后等待ajax呼叫的响应(停止表单提交到那时),然后根据我得到的ajax响应发布表单。这个问题基于ajax调用,然后提交表格。因此,在放下脚本之下后,一切都很好,但是我将失去客户端验证。我可以打一个ajax呼叫并仍然尊重客户端验证吗?

@section scripts {
    <script>
        var canSubmit = false;
        $('form').submit(function (e) {
            if (!canSubmit) {
                e.preventDefault();
                var data = $('form').serialize();
                var url = $(this).data('url');
                $.ajax({
                    url: url,
                    type: 'POST',
                    data: data,
                    success: function (response) {
                        if (response.hasPreviousRequest) {
                            if (confirm("You've already applied for this job. Apply again?")) {
                                canSubmit = true;
                                $('form').submit();
                            }
                        }
                        else {
                            canSubmit = true;
                            $('form').submit();
                        }
                    },
                    error: function () {
                        alert("error");
                    }
                });
            }
        });
    </script>
}

P.S:请注意,i AS 删除AJAX调用客户端验证验证开始正常工作。有人可以向我解释一下这种行为吗?

您需要在表单元素上调用.valid()方法(如果不是,请取消AJAX调用)

$('form').submit(function (e) {
    if (!$(this).valid()) {
        return // exit
    }
    if (!canSubmit) {
        ....

最新更新