J'utilise jquery-1.3.2.js avec le plugin jquery.validate.js et j'utilise le code suivant pour essayer de valider un champ de temps optionnel.jQuery Validator, Regex et null
$.validator.addMethod('time', function(value) {
return /(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)|(^([0-9]|[1][0-9]|[2][0-3])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)/.test(value);
}, 'Please enter a valid time in the format of mm:hh am');
$.validator.addClassRules({
time: {
required: true,
time: true
},
timeOptional: {
required: false,
time: true
}
});
Quand j'ajoute une classe à mon champ de saisie qui est de « timeOptional », et je ne rentre rien dans la zone de texte, lorsque le formulaire est soumis, je reçois le message « S'il vous plaît entrer une heure valide dans la format de mm: hh am. "
Comment puis-je modifier cela afin que le formulaire permettra de soumettre une valeur nulle dans cette zone de texte?
Je crains d'être un peu lent en ce qui concerne la regex. Je ne pouvais pas faire fonctionner ça. Il accepterait une zone de texte vide, mais il a fini par accepter autre chose aussi. J'ai fini par faire une autre fonction en utilisant la regex d'origine mais j'ai ajouté if (value == "") return true; sinon renvoyer l'expression rationnelle – Deke