jQuery 验证插件,两个字段之一是必需的

标签 jquery jquery-validate

我有一个包含 2 个字段的表单;手机号码。和电话号码。

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

如果它们都没有填充,我需要 jquery validate 来抛出错误。

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

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

但是,如果只有一个字段为空,则该字段仍然获得“有效”类,这是我不想要的,因为我的有效 css 有一个绿色边框(因此空字段仍然有一个绿色边框)

那么:如何获取空字段(假设另一个字段有值)而不获取有效的类,从而获取绿色边框?

最佳答案

使用the optional additional-methods.js file ,有一个名为 require_from_group 的方法可以完全满足您的请求。 (您必须至少使用该插件的 1.11.1 版本,以避免过去的错误。)

rules: {
    mobile:{
        require_from_group: [1, '.mygroup']
    },
    telephone:{
        require_from_group: [1, '.mygroup']
    }
},
....

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

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

工作演示:http://jsfiddle.net/NfcxX/

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

关于jQuery 验证插件,两个字段之一是必需的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18315072/

相关文章:

javascript - 制作一个div以显示为无

jQuery 验证规则和消息

jquery - 使用 jquery 移动版本 >1.2 时 jquery 验证生成的消息的对齐问题

jquery - 使用JQuery Validation Plugin,我想更改远程验证方法

javascript - jquery 验证范围不适用于负数

javascript - 如何在 Fancybox 的 onComplete 事件中使用 $(this) ?

javascript - 单击时根据按钮 ID 显示内容

javascript - 连续挑出一个td

javascript - 如何控制IE6+jQuery+jQuery-ui内存泄漏?

javascript - 文件输入 : Cannot read property 'toLowerCase' of undefined 的 Jquery 表单验证器错误