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
Vous devez vous connecter pour publier un commentaire.
Plugin jQuery Validation - v1.11.0
Alors:
De http://www.robsearles.com/2010/05/jquery-validate-url-adding-http/
Donc, il n'y a pas de possibilité de le ci-dessus est exactement
Ce code ne fonctionne pas.
Votre code est manquant
this.optional(element)
... de jolies choses importantes. Sans elle, vous ne pouvez pas laisser ce champ vide, même quand vous souhaitez que le champ soit en option!OriginalL'auteur Barno
J'ai réussi à le faire fonctionner sans erreurs, voici le code JS que j'ai utilisé:
Vous pouvez le voir en action sur cette JSFiddle.
Ok, je ne comprenais pas que l'exigence est d'éviter de copier les regex. Dans ce cas, pourquoi n'appelez-vous pas votre URL de validation en fonction de la façon
return this.optional(element) || urlValidationFunction(value)
?C'est exactement ce que j'ai fait et décrites dans la question. J'ai fini avec les erreurs aussi dans la question.
J'ai édité ma réponse, dites-moi si elle répond à vos exigences.
De toute façon l'homme ...mais votre réponse est correcte....thnx bro
OriginalL'auteur Olivier Payen