jquery验证不被尊重 - 浏览器提交表单

时间:2016-02-23 04:40:42

标签: javascript jquery ajax forms submit

我已经看过@ Sparky的回答并向this提问jsFiddle,在我看来我有正确的html和javascript,但浏览器仍在提交表单。

我有这个HTML:

 @using (Html.BeginForm("Create", "ClientWarehouseRequest", FormMethod.Post, new { @class = "form-horizontal" }))
        {
    <!-- many form inputs here -->
    <div class="buttons-wrap">
                <input type="hidden" name="SubmitButtonValue" id="SubmitButtonValue" />
                <input class="k-button" type="submit" value="Post" name="SubmitButton" />
                @Html.ActionLink("Cancel", "Index", controllerName: null, routeValues: null, htmlAttributes: new { @class = "k-button", style = "vertical-align: bottom;" })
                <input class="k-button" type="submit" value="Save" name="SubmitButton" />
            </div>

        }

使用此javascript:

$(document).ready(function () {
        $('form').validate({
            submitHandler: function (form) {
                var postingWindow = $("#postingDialogWindow").data("kendoWindow");
                postingWindow.title("Posting Client Request...");
                postingWindow.open();

                $.ajax({
                    url: form.action,
                    type: form.method,
                    data: $(form).serialize()
                })
                .success(function (result) {
                    if (result.success) {
                        window.alerts.info(result.message, true);
                        window.location.replace(result.redirecturl);
                    }
                    else {
                        window.alerts.error(result.error);
                    }
                })
                .fail(function (result) {
                    //window.alerts.error(result);
                    var result = $.parseJSON(result.responseText);
                    window.alerts.error(result.errorMessage);
                })
                .always(function (data) {
                    postingWindow.close();
                });
                return false;
            },
            invalidHandler: function (event, validator) {
                alert('invalid');
            }
        });
}

然而,当我点击提交按钮时,浏览器正在将表单作为完整的回发提交。我需要通过validate()函数内的$ .ajax调用来提交表单。我错过了什么?

0 个答案:

没有答案