jQuery验证插件,需要两个字段中的一个

jQuery验证插件,需要两个字段中的一个,jquery,jquery-validate,Jquery,Jquery Validate,我有一个有两个字段的表单;手机号码和电话号码 必须至少填写其中一个字段,但也可以同时填写这两个字段 我需要jqueryvalidate来抛出一个错误,如果它们都没有被填充 我通过以下方式实现了这一目标: rules: { mobile:{ required: { depends: function(element) { return $("#regTel

我有一个有两个字段的表单;手机号码和电话号码

必须至少填写其中一个字段,但也可以同时填写这两个字段

我需要jqueryvalidate来抛出一个错误,如果它们都没有被填充

我通过以下方式实现了这一目标:

rules: {
            mobile:{
                required: {
                    depends: function(element) {
                        return $("#regTelephone").val() === '';
                    }
                }
            },
            telephone:{
                required: {
                    depends: function(element) {
                        return $("#regMobile").val() === '';
                    }
                }
            }
}  
但是,如果只有一个字段是空的,那么这个字段仍然会得到“valid”类,这是我不想要的,因为我的有效css有一个绿色边框(因此空字段仍然会得到一个绿色边框)

因此:如何获取空字段(如果另一个字段有值)以不获取有效类和绿色边框?

使用,有一个名为
require\u from\u group
的方法,它完全满足您的请求。(您必须至少使用插件的1.11.1版,以避免过去的错误。)

1
参数是组中需要的数量。在HTML标记中,组中的字段必须包含与第二个参数中指定的
class
匹配的
class

<input type="text" class="mygroup" name="mobile" />
<input type="text" class="mygroup" name="telephone" />

工作演示

我的演示还显示了
选项,该选项将多条错误消息合并为一条。


<input type="text" name="mobile" id="regMobile">
<input type="text" name="telephone" id="regTelephone">

rules: {
            mobile:{
                required: {
                    depends: function(element) {
                        return $("#regTelephone").val() == ''
                    }
                }
            },
            telephone:{
                required: {
                    depends: function(element) {
                        return $("#regMobile").val() == ''
                    }
                }
            }
}  
规则:{ 流动电话:{ 所需:{ 依赖:函数(元素){ 返回$(“#regTelephone”).val() } } }, 电话:{ 所需:{ 依赖:函数(元素){ return$(“#regMobile”).val() } } } }
如果
.val
无效,则可以在验证后放入if语句以删除有效类null@Zeaklous,仅供参考,该插件已经有了一个规则/方法,名为
require\u from\u group
。我遇到了一个问题。它似乎阻止其他字段被验证。我添加了一个初始的“title”字段,验证被忽略:@Andy,GitHub上有人说这个bug已经在尚未发布的最新测试版中修复。如果它这么简单,我们就不需要
require\u from\u group
方法。
<input type="text" name="mobile" id="regMobile">
<input type="text" name="telephone" id="regTelephone">

rules: {
            mobile:{
                required: {
                    depends: function(element) {
                        return $("#regTelephone").val() == ''
                    }
                }
            },
            telephone:{
                required: {
                    depends: function(element) {
                        return $("#regMobile").val() == ''
                    }
                }
            }
}