2010-08-19 7 views
8

Problème Je veux valider un champ à l'aide d'un validateur personnalisé J'ai créé c'est essentiellement un regex pour un numéro de téléphone que si le champ a une valeur, sinon il n » t besoin d'être validé car c'est facultatif.plug-in jQuery validateur: valider champ facultatif

sur mesure validateur:

$.validator.addMethod('phone', function (value) { 
     return /^[01]?[- .]?\(?[2-9]\d{2}\)?[- .]?\d{3}[- .]?\d{4}$/.test(value); 
    }, 'Please enter a valid US phone number.'); 

Règles:

phone: { 
    required: true, 
    phone: true 
}, 
fax: { 
    phone: true 
} 

J'ai même essayé:

phone: { 
    required: true, 
    phone: true 
}, 
fax: { 
    required: function(element){ 
    if (!$("#cf-fax").val()) { return true; } else { return false; } 
    } 
    phone: true 
} 

Pour référence c'est le domaine que je suis en train de référence:

<input type="text" name="fax" class="optional" size="15" maxlength="14" id="cf-fax" /> 

Toute aide est appréciée parce que je suis tout simplement perdu. = \

Répondre

13

Vous pouvez appeler .optional() (défini dans le plug-in de validation) comme celui-ci

$.validator.addMethod('phone', function (value, element) { 
    return this.optional(element) || /^[01]?[- .]?\(?[2-9]\d{2}\)?[- .]?\d{3}[- .]?\d{4}$/.test(value); 
}, 'Please enter a valid US phone number.'); 

C'est le schéma standard pour le plug-in de validation, take a look at their additional methods here des exemples.

+0

Eh bien merde qui a fonctionné! Merci pour ça. Je vais creuser dans les méthodes supplémentaires que vous avez mentionnées. – creativetim

+0

@creativetim - Bienvenue :) et bienvenue à SO !, assurez-vous d'accepter les réponses qui répondent à vos questions via la coche sur la gauche de la réponse qui aide :) –

+0

Il fait! Fait et fait. – creativetim

Questions connexes