jQueryvalidationrequire_from_group不起作用

我在我的使用中使用require _from_group进行validation,但它无效。

我的脚本代码在这里:

jQuery.validator.setDefaults({debug:true,$(document).ready(function(){

jQuery.validator.setDefaults({ debug: true, success: "valid" }); $("#findproject_form").validate({ rules: { Profession: { require_from_group: [1, ".validategroup"] }, Location1: { require_from_group: [1, ".validategroup"] }, Company: { require_from_group: [1, ".validategroup"] }, Name: { require_from_group: [1, ".validategroup"] }, KeyWord: { require_from_group: [1, ".validategroup"] } } }); $.validator.addMethod("require_from_group", function (value, element, options) { var $fields = $(options[1], element.form), $fieldsFirst = $fields.eq(0), validator = $fieldsFirst.data("valid_req_grp") ? $fieldsFirst.data("valid_req_grp") : $.extend({}, this), isValid = $fields.filter(function () { return validator.elementValue(this); }).length >= options[0]; // Store the cloned validator for future validation $fieldsFirst.data("valid_req_grp", validator); // If element isn't being validated, run each require_from_group field's validation rules if (!$(element).data("being_validated")) { $fields.data("being_validated", true); $fields.each(function () { validator.element(this); }); $fields.data("being_validated", false); } return isValid; }, $.validator.format("Please fill at least {0} of these fields.")); 

});

当任何一个或多个字段为fill_out而不是为空且未转到操作页面时,它会出错。 那有什么不对。

我的表格在这里

  

Search By

删除自定义方法。 (它使字段可选,它将字段的值与参数的总和进行比较。由于您的参数是数字1和类名,显然,这没有意义。)

 jQuery.validator.addMethod("require_from_group", function(value, element, params) { return this.optional(element) || value == params[0] + params[1]; }, jQuery.validator.format("Please fill out atleast one field ")); 

这没有意义,因为那不是require_from_group函数…… 这只是来自.addMethod()文档的一些示例代码 ,其名称已更改为"require_from_group"


使用additional-methods.js文件中包含的require_from_group方法/规则的默认版本。 您可以包含整个文件或复制下面的一个方法。

如您所见,这不是一个微不足道的function。

 $.validator.addMethod("require_from_group", function(value, element, options) { var $fields = $(options[1], element.form), $fieldsFirst = $fields.eq(0), validator = $fieldsFirst.data("valid_req_grp") ? $fieldsFirst.data("valid_req_grp") : $.extend({}, this), isValid = $fields.filter(function() { return validator.elementValue(this); }).length >= options[0]; // Store the cloned validator for future validation $fieldsFirst.data("valid_req_grp", validator); // If element isn't being validated, run each require_from_group field's validation rules if (!$(element).data("being_validated")) { $fields.data("being_validated", true); $fields.each(function() { validator.element(this); }); $fields.data("being_validated", false); } return isValid; }, $.validator.format("Please fill at least {0} of these fields.")); 

演示(使用您的jQuery和HTML): http : //jsfiddle.net/y3qayufu/2/