0

我的问题是使用 Jquery 验证我的表单。我的验证validate仅适用于该功能,但随后我添加了该submit选项并且验证未进行。我想验证我的表单,然后执行提交。

$(document).ready(function () {
    $('#ReqCreateForm').validate({
         invalidHandler: function (e, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
                var message = errors == 1
                ? 'Missing 1 field'
                : 'Missing fields';
                $("div.error span").html(message);
                $("div.error").show();
            } else {
                $("div.error").hide();
            }
        },
        onkeyup: false,
        highlight: function (element) {
            $(element).addClass('error');
        }, unhighlight: function (element) {
            $(element).removeClass('error');
        }
    });

    $('#ReqCreateForm').submit(function () {
        $.ajax({
            url: this.action,
            type: this.method,
            data: $(this).serialize(),
            success: function (result) {
                alert("All Great!");
            },
            error: function (jqXhr, textStatus, errorThrown) {
                alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
            }
        });
        return false;
    });
});

提前致谢。

解决方案:

解决方案非常简单。在我的提交选项中添加了以下代码,之前$.ajax

  if (!$(this).valid()) {
         return false;
    }
4

2 回答 2

1

您必须在提交按钮的单击处理程序上调用有效函数,如下所示:

if($('#ReqCreateForm').valid())
{
    //then do your thing
}
于 2012-04-04T18:41:28.620 回答
0

我使用这个插件使用 Ajax 提交表单。它有一个名为 onbeforesubmit 的事件,您可以在其中毫无问题地调用验证。也许你想试试。在您的情况下,您需要在向 ajax 调用提交数据之前捕获该事件以对其进行验证(以防您不想使用我建议的插件)

于 2012-04-04T18:38:37.530 回答