jQuery validate - wie ein Feld mit zwei XOR-Regeln validiert wird

Ich habe ein Feld, das E-Mail oder Handy enthalten kann (in meinem Fall ist Handy 8-stellig). Ich habe bereits zwei Ansätze ausprobiert (beide Beispiele funktionieren nicht, da 'element' keine validate-Methode hat):

Erster Ansatz: Erstellen Sie eine benutzerdefinierte Methode und führen Sie dort beide Überprüfungen durch. Anschließend muss ich meine eigene E-Mail- und mobile Überprüfung erstellen. Ich konnte keine Möglichkeit finden, die Regeln für die jQuery-Überprüfung in neuen Methoden wiederzuverwenden. Das möchte ich haben:

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");

Zweiter Ansatz: Erstellen Sie abhängige Regeln. Und auch in diesem Fall konnte ich keine Möglichkeit finden, jQuery-Validierungsregeln wiederzuverwenden.

{ 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 } });
                        }
                    }
                }
            }
        }
    }

Antworten auf die Frage(1)

Ihre Antwort auf die Frage