jquery表单验证允许提交表单,即使有错误

jquery表单验证允许提交表单,即使有错误,jquery,forms,validation,Jquery,Forms,Validation,使用jquery验证插件,如果我第一次提交表单时出现错误,那么它将不允许表单提交并显示错误。但是,如果我只是修复了一个表单元素错误,而其他元素仍然无效,那么表单将提交到表单操作URL 我希望表单不提交,除非用户已修复所有错误。我试图在顺从中返回false,但没有成功 jQuery(function ($) { $('#regform').validate({ rules: { fullname: { required

使用jquery验证插件,如果我第一次提交表单时出现错误,那么它将不允许表单提交并显示错误。但是,如果我只是修复了一个表单元素错误,而其他元素仍然无效,那么表单将提交到表单操作URL

我希望表单不提交,除非用户已修复所有错误。我试图在顺从中返回false,但没有成功

jQuery(function ($) {
    $('#regform').validate({
        rules: {
            fullname: {
                required: true,
                minlength: 2,
                maxlength: 20,
                lettersonly: true
            },
            gender: {
                required: true
            },
            mobile: {
                required: true,
                minlength: 10,
                maxlength: 13,
                digits: true
            },
            address: {
                required: true,
                minlength: 10,
            },
            email: {
                required: true,
                email: true
            },
            password: {
                required: true,
                minlength: 6

            }
        },
        messages: {
            fullname: {
                required: "Please enter your full name",
                minlength: "Name should be more than 2 characters",
                maxlength: "Name should be less than 20 characters",
                lettersonly: "Name should contain only letters"
            },
            gender: {
                required: "Please select your gender",
            },
            mobile: {
                required: "Please enter your mobile number",
                minlength: "Mobile number should be more than 10 characters",
                maxlength: "Mobile number should be less than 13 characters",
                digits: "Mobile number should contain only digits"
            },
            address: {
                required: "Please enter your address",
                minlength: "Address should be more than 10 characters",
            },
            email: {
                required: "Please enter your email address",
                email: "Please enter a valid email address"
            },
            password: {
                required: "Please provide a password",
                minlength: "password must be at least 6 characters"
            }
        },
        submitHandler: function(form) {
            var valid = $("regform").valid();
            if(!valid) {
                e.preventDefault();
                alert("stop");
            } else {
                e.preventDefault();
            }

        }
    });
});

您是否尝试过在submithandler中修改
var valid=$(“regform”).valid()
var valid=$(“#regform”).valid()


让我知道修改后的情况。我可以帮助你进一步研究这个问题

使用类似的设置,但字段较少-

lettersonly
方法可能已被删除或弃用。将以下内容添加到代码中,它应该可以工作。让我知道

$.validator.addMethod( "lettersonly", function( value, element ) {
    return this.optional( element ) || /^[a-z]+$/i.test( value );
}, "Letters only please" );

这没什么区别。第一次它停止表单提交,但之后您可以提交表单。我使用了与您相同的设置,但其上的字段较少。对于我来说,在验证所有字段之前,表单不会提交。让mw知道。