Comment étendre jquery.valider l'URL de validation?

J'ai besoin pour que les utilisateurs soient en mesure de créer partielle Url sans avoir à taper l'URL complète à chaque fois.

Par exemple, dire que j'ai un plan sur l'url en cours de www.example.com/areas/{userinput}/home. Je veux que l'utilisateur soit en mesure d'entrer du texte dans une zone de texte et je veux valider le fait que c'est une URL valide.

L'URL du programme de validation des fonctions comme ceci:

url: function(value, element) {
        return this.optional(element) || /giantregex/.test(value);
}

J'ai tenté l'ajout d'une méthode de validation pour le programme de validation par le suivant:

$.validator.addMethod("exturl", function(value) {
    return $.validator.methods.url.call($.validator, "http://www.example.com/areas/" + value + "/home");
});

Toutefois, lorsque le formulaire est validé et mon extension est appelée, je reçois cette erreur:

Uncaught TypeError: Object function (d,a){this.settings=b.extend(true,{},b.validator.defaults,d);this.currentForm=a;this.init()} has no method 'optional' 

optional semble être une méthode sur la $.validator objet, mais je ne peux pas comprendre comment appeler le validateur méthode d'url.

OriginalL'auteur scottm | 2012-10-17