jQueryvalidation:require_from_group未触发

在我的表单上,我试图要求至少需要一个复选框。 但是,似乎没有调用’require_from_group’函数。

这是表格:

Request your visitor's guide today.

这是我的jQuery:

 form.validate({ debug: true, onfocusout: false, rules: { 'FirstName': 'required', 'LastName': 'required', 'EmailAddress': { required: true, email: true }, 'ZipCode': { required: true, digits: true }, 'Address1': { addressRequired: true }, 'City': { addressRequired: true }, 'State': { addressRequired: true }, 'ViewGuideOnline': { require_from_group: [1, '.checkbox-required'] }, 'MailGuide': { require_from_group: [1, '.checkbox-required'] } }, groups : { guides: 'ViewGuideOnline MailGuide' }, errorPlacement: function (error, e) { if (e.attr('name') == 'ViewGuideOnline' || e.attr('name') == 'MailGuide') { error.insertAfter(mailGuide); } else { error.insertAfter(e); } }, highlight: function (e, errorClass, validClass) { $(e).parent('li').addClass(errorClass).removeClass(validClass); }, unhighlight: function (e, errorClass, validClass) { $(e).parent('li').removeClass(errorClass).addClass(validClass); }, submitHandler: function (form) { form.submit(); } }); jQuery.validator.addMethod('addressRequired', function (value, e) { if (mailGuide.is(':checked')) { if (value === '') { return false; } else { return true; } } else { return true; } }, 'Required'); jQuery.validator.addMethod('require_from_group', function (value, e, options) { var validator = this; var selector = options[1]; var validOrNot = $(selector, e.form).filter(function() { return validator.elementValue(this); }).length >= options[0]; if(!$(e).data('being_validated')) { var fields = $(selector, e.form); fields.data('being_validated', true); fields.valid(); fields.data('being_validated', false); } return validOrNot; }, 'Please select an option.'); jQuery.extend(jQuery.validator.messages, { required: 'Required', email: 'Invalid', digits: 'Invalid', require_from_group: 'Required' }); 

任何帮助是极大的赞赏。

所以,我想出来了。 我正在使用兄弟选择器和伪元素来设置复选框的样式。 在我的CSS中,我将输入设置为display: none ,并且jQuery Validate不会触发隐藏的元素。