jQuery Validate Plugin不会验证提交的所有要求

时间:2012-11-27 01:24:28

标签: jquery jquery-validate

我已阅读其他帖子,但无法弄清楚为什么我的部分必填字段未在提交时验证。我正在帮助客户端客户端验证他的脚本,并将表单发布到另一方。在我的服务器上:http://alluringassets.com/caitlin/projects/validationscript/index.html。如果我专注于事件日期,它将验证信息,但如果我从不关注它,我点击提交 - 该程序不验证位置,组大小,事件日期,但验证顶部字段。有什么想法吗?

$.validator.addMethod("groupMin", function(value) {
        return $("#00NG0000008iHKH").val() >= 6;
    }, 'Sorry, but we only handle groups of 6 or more.');

$.validator.addMethod("seoNO", function(value) {
        return $("#00NG0000008iHKg").match(/SEO/g);
    }, 'No thank you! We are not interested in Search Engine Optimization support.');

$.validator.setDefaults({
    //submitHandler: function() { 
        //form.submit();
        //alert("submitted!"); }
});

$().ready(function() { 
var validator = $("#detailRequestForm").bind("invalid-form.validate", function() {
            $("#summary").html("Your form contains " + validator.numberOfInvalids() + " errors. Please correct.");
        }).validate({
        rules: {
            firstname: "required",
            lastname: "required",
            email: {
                required: true,
                email: true
            },
            company: {
                required: true,
                minlength: 2
            },
            '00NG0000008iHK7': {//Program Location
                required: true,
                minlength: 2
            },
            '00NG0000008iHKH': //Group Size
                "groupMin",
            '00NG0000008iHKR': {//Event Date
                required: true,
                minlength: 3
            },
            '00NG0000008iHKg':"seoNO",
        },
        messages: {
            firstname: "Please enter your firstname",
            lastname: "Please enter your lastname",
            email: "Please enter a valid email address",
            company: "We do not serve private groups. Sorry, we can't help you.",
            '00NG0000008iHK7': //Program Location
            "Where will the program be located?",
            '00NG0000008iHKH':{//Group Size
                required:"Please enter the number of members in the group.",
            },
            '00NG0000008iHKR': {//Event Date
                required: "Please enter a date or TBA if you are unsure."
            },
            '00NG0000008iHKg': {//Comments
                //required: "Please enter any comments or questions you may have."
            }
        },
        errorElement: "em",
        errorContainer: $("#warning, #summary"),
        //highlight: function(label) {
            //$(label).removeClass("success").addClass('error');
        //},
        //success: function(label) {
                //label.text("ok!").empty().addClass("success");

            //}

    });
  });

2 个答案:

答案 0 :(得分:0)

不知何故,我想出了一切。如果有人对以下作品感兴趣。

// JavaScript Document
//Script written by Caitlin Havener
//Utilizing jQuery validation plugin
//Visit sneakymommedia.com to hire me!
$.validator.addMethod("groupMin", function(value) {
        return $("#00NG0000008iHKH").val() >= 6;
    }, 'Sorry, but we only handle groups of 6 or more.');

    /*$.validator.addMethod("seoNO", function(value) {
            return $("#00NG0000008iHKg").match("/SEO/g");
        }, 'No thank you! We are not interested in Search Engine Optimization support.');*/

    $.validator.setDefaults({
        submitHandler: function() { 
            //form.submit();
            alert("submitted!"); }
});

$.validator.addMethod(
        "regex",
        function(value, element, regexp) {
            var re = new RegExp(regexp);
            return this.optional(element) || !re.test(value);
        },
        "No thank you! We are not interested in Search Engine Optimization support."
);


$().ready(function() { 
    var validator = $("#detailRequestForm").bind("invalid-form.validate", function() {
            $("#summary").html("Your form contains " + validator.numberOfInvalids() + " errors. Please correct.");
        }).validate({
        //debug: true,
        rules: {
            firstname: "required",
            lastname: "required",
            email: {
                required: true,
                email: true
            },
            company: {
                required: true,
                minlength: 2
            },
            '00NG0000008iHK7': {//Program Location
                required: true,
                minlength: 2
            },
            '00NG0000008iHKH': //Group Size
                "groupMin",
            '00NG0000008iHKR': {//Event Date
                required: true,
                minlength: 3
            },
            '00NG0000008iHKg':{
                //"seoNO",
                regex: / SEO |SEO| seo |seo|Search Engine Optimization | Search Engine Optimization |Search Engine Optimization/
            }
        },
        messages: {
            firstname: "Please enter your firstname",
            lastname: "Please enter your lastname",
            email: "Please enter a valid email address",
            company: "We do not serve private groups. Sorry, we can't help you.",
            '00NG0000008iHK7': //Program Location
            "Where will the program be located?",
            '00NG0000008iHKH':{//Group Size
                required:"Please enter the number of members in the group.",
            },
            '00NG0000008iHKR': {//Event Date
                required: "Please enter a date or TBA if you are unsure."
            },
            '00NG0000008iHKg': {//Comments
                //required: "Please enter any comments or questions you may have."
            }
        },
        errorElement: "em",
        errorContainer: $("#warning, #summary"),
        validClass: "success",
        focusCleanup: true,
        success: function(label) {
                label.text("ok!").addClass("success");
            }
    });

});

答案 1 :(得分:-1)

ID不应该以数字开头 - 这可能会使验证插件绊倒。是什么阻止您调用这些字段locationgroupsizeeventdate

<强>更新

遵循声明字段的逻辑,你会错过后面字段的一些大括号:

        company: {
            required: true,
            minlength: 2
        },
        '00NG0000008iHK7': { //Program Location = missing opening curly
            required: true,
            minlength: 2
        },
        '00NG0000008iHKH': { //Group Size - opening curly
            "groupMin"}, // closing curly
        '00NG0000008iHKR': { //Event Date - opening curly
            required: true,
            minlength: 3
        },
        '00NG0000008iHKg': {
            "seoNO", // opening curly
        }