Jquery验证块表单提交

时间:2012-03-10 04:05:28

标签: asp.net-mvc jquery jquery-validate

我正在使用asp.net mvc 3进行不显眼的jquery验证。我有一个表单,用于包含各种必需属性和其他数据注释的模型。

我正在使用jquery提交此表单,如此

<script type="text/javascript"> $(document).ready(function() {
    $('form').submit(function(e) {
        e.preventDefault();        

        var user = {
            UserName: $('#@(Html.IdFor(m => m.UserName))').val(),
            Password: $('#@(Html.IdFor(m => m.Password))').val(),
            RememberMe: $('#@(Html.IdFor(m => m.RememberMe))').val(),
            returnUrl: '@Request.Url.PathAndQuery'
        };

        $('#loginform').hide();
        $('#loading').show();

        $.ajax({
            url: '@Url.Action("LogOn", "Account")',
            type: 'POST',
            data: JSON.stringify(user),
            dataType: 'json',
            processData: false,
            contentType: 'application/json;charset=utf-8',
            success: function(data) {
                if (data.returnUrl) {
                    window.location.href = data.returnUrl;
                } else {
                    $("#loginform").replaceWith(data);
                }

            },
            error: function(jqXhr, textStatus, errorThrown) {
                alert("There was an error logging in :'" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
            },
            complete: function() {
                $('#loginform').show();
                $('#loading').hide();
            }
        });
    });
}); </script>

问题是表单已经过验证(并且会显示必填字段的错误等),然后会提交​​导致错误的表单。

如何修改jquery以便在执行此提交之前检查表单是否有效?

1 个答案:

答案 0 :(得分:0)

调用if($('form')。valid()),如果表单有效则返回true / false