Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery.validate需要来自\u组的\u_Javascript_Jquery_Validation - Fatal编程技术网

Javascript Jquery.validate需要来自\u组的\u

Javascript Jquery.validate需要来自\u组的\u,javascript,jquery,validation,Javascript,Jquery,Validation,每当我使用require\u from\u group时,它会禁用所有其他验证。你知道为什么吗 还有一种方法可以将“Telefon”和“Mobitel”分组,并将“Telefon”和“Mobitel”中的require\u应用到it中吗 $(document).ready(function(){ $("#fncMain").validate( { /*groups:{Call:"Telefon Mobitel"},*/ rules:{ Davc

每当我使用
require\u from\u group
时,它会禁用所有其他验证。你知道为什么吗

还有一种方法可以将“Telefon”和“Mobitel”分组,并将“Telefon”和“Mobitel”中的
require\u应用到it中吗

  $(document).ready(function(){
    $("#fncMain").validate(
    {
    /*groups:{Call:"Telefon Mobitel"},*/
    rules:{
        Davcna:{required:true,exactlength:5, digits:true},
        Idzav:{required:true,exactlength:5, digits:true},
        Maticna:{required:true,exactlength:5, digits:true},
        Telefon:{require_from_group: [1,".callme"]},
        Mobitel:{require_from_group: [1,".callme"]}
    }, 
    messages:{

    }}
    );
  });
此处未包含的所有其他字段使用简单的“必需”类。如果我将
require\u从\u组中删除
应用于“Telefon”和“Mobitel”的规则,则所有其他字段验证工作正常

谢谢你的帮助


EDIThtml:(太长,无法在此处发布)

@Tats\n未在此处发布来自\u组的自定义
require\u

事实证明,这也修复了一个记录的github bug,该bug是在
additional-method-1.10.js
for
jquery.validation
中的组
require\u版本1.10.0发布的

github问题:

smileyanp@github在他的解决方案中引用了这篇文章,他重用了@Tats_innit的函数,并创建了一个新的函数,该函数表明它可以正常工作,并且不会禁用对在
require_组
之前定义的其他规则的验证

这篇文章在这里是为了节省时间,因为它花了3个小时在谷歌上搜索如此小的细节

修复:

只需更新
additional-method-1.10.js
或在加载
additional-method-1.10.js
后执行此代码即可(覆盖函数)

jQuery.validator.addMethod(“需要来自组的组”),函数(值、元素、选项){
var numberRequired=选项[0];
var选择器=选项[1];
变量字段=$(选择器,element.form);
var filled_fields=fields.filter(函数(){
//与空字符串相比更为清晰
返回$(this).val()!=“”;
});
var empty_fields=fields.not(filled_fields);
//我们只将第一个空字段标记为无效
if(填充字段.length
编辑:实际上,此修复程序似乎已并入1.12.0版,您可以在此处找到它的CDN指针:

供参考:

http://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/jquery.validate.js
http://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/jquery.validate.min.js
http://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/additional-methods.js
http://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/additional-methods.min.js
在找到上面的解决方案之前,我在下面找到了这段代码,所以我的建议是使用上面提到的CDN链接,而不是将下面的代码粘贴到JS文件中

有一个(滚动到最底部),我在这里复制了它这不是我的作品,写这篇文章的GitHub用户sfreytag似乎并不是一个很有贡献的人,我只是想把它写进去,这样其他发现这篇文章的人就不必在GitHub上钻研线程:

jQuery.validator.addMethod("require_from_group", function(value, element, options) {
    var validator = this;
    var selector = options[1];
    var validOrNot = $(selector, element.form).filter(function() {
        return validator.elementValue(this);
    }).length >= options[0];

    if(!$(element).data('being_validated')) {
        var fields = $(selector, element.form);
        fields.data('being_validated', true);
        fields.valid();
        $(element.form).valid();
        fields.data('being_validated', false);
    }
    return validOrNot;
}, jQuery.format("Please fill at least {0} of these fields."));
到目前为止,我已经用它做了有限的测试,但它似乎像您预期的那样工作,所有的验证都会发生(而不是像以前那样通过任何非“require_from_group”的验证),所以到目前为止我对它很满意。我只是在JS代码顶部的验证器声明之后添加了它:

$.validator.setDefaults({
    debug: true,
    success: "valid"
});

jQuery.validator.addMethod("require_from_group", function(value, element, options) {
    var validator = this;
    var selector = options[1];
   //continuation of code...

您是否可以共享此表单的html,至少与这些规则相关?i、 e.什么东西有类
callme
,etc@Ryley我发布了我的HTML(表单部分)。检查编辑我的帖子。:)我认为您发现了一个bug…请参阅以了解有关潜在bug的详细信息。如果这就是最终的解决方案,请将其作为答案发布在这里,并向我征求意见:)呵呵,我实际上发布了这个bug报告:)谢谢你简化了它;)在比较这个函数的1.11.1版本与这个答案中的版本的行为时,我注意到这个版本似乎不像发货版本那样进行贪婪的重新验证。此版本不会在表单提交时重新验证,但发货版本会在最小数量的字段中有值(onkeyup)时立即清除验证消息。仅供参考,以防有人需要对他们的用例进行贪婪的重新验证。这是一个适合我的版本。它不会违反其他规则,并在keyup上重新验证组字段。
$.validator.setDefaults({
    debug: true,
    success: "valid"
});

jQuery.validator.addMethod("require_from_group", function(value, element, options) {
    var validator = this;
    var selector = options[1];
   //continuation of code...