電子メールまたはモバイルを含めることができるフィールドが 1 つあります (私の場合、モバイルは 8 桁です)。私はすでに2つのアプローチを試しました(「要素」には検証メソッドがないため、両方の例は機能しません):
最初のアプローチ: カスタム メソッドを作成し、そこで両方の検証を行いますが、独自の電子メールとモバイルの検証を作成する必要があります。新しいメソッドで jQuery 検証ルールを再利用する方法が見つかりませんでした。これは私がしたいことです:
jQuery.validator.addMethod("mobileoremail", function(value, element) {
return this.optional(element) ||
element.validate({ rules: { digits: true, rangelength: [8, 8] } }) ||
element.validate({ rules: { email: true } });
}, "Invalid mobile or email");
2 番目のアプローチ: 従属ルールを作成します。また、この場合、jQuery 検証ルールを再利用する方法が見つかりませんでした。
{ myRules: {
rules: {
user: {
required: true,
email: {
depends: function(element) {
return !element.validate({ rules: { mobile: true } });
}
},
mobile: {
depends: function (element) {
return !element.validate({ rules: { email: true } });
}
}
}
}
}
}