Skip to content

Instantly share code, notes, and snippets.

@ygrenier
Last active November 7, 2016 15:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ygrenier/568fda6b3ccc82321872 to your computer and use it in GitHub Desktop.
Save ygrenier/568fda6b3ccc82321872 to your computer and use it in GitHub Desktop.
Validation jQuery supportant les nombres et les dates en français
/*!
** Support des formats français pour la validation des nombres et des dates
*/
(function ($) {
// Sauvegarde les méthodes de base
var originalMethods = {
min: $.validator.methods.min,
max: $.validator.methods.max,
range: $.validator.methods.range
};
// Analyse un nombre
var parseFrenchNum = function (str) {
str = str.replace(",", ".").replace(" ", "");
return parseFloat(str);
};
// Analyse une date
var parseFrenchDate = function (str) {
return new Date(str);
};
// Traitement des nombres
$.validator.methods.number = function (value, element) {
var val = parseFrenchNum(value);
return this.optional(element) || ($.isNumeric(val));
};
// Traitement des dates
$.validator.methods.date = function (value, element) {
var val = parseFrenchDate(value);
return this.optional(element) || (val instanceof Date);
};
// Traitement des règles sur les nombres
$.validator.methods.min = function (value, element, param) {
var val = parseFrenchNum(value);
return originalMethods.min.call(this, val, element, param);
};
$.validator.methods.max = function (value, element, param) {
var val = parseFrenchNum(value);
return originalMethods.max.call(this, val, element, param);
};
$.validator.methods.range = function (value, element, param) {
var val = parseFrenchNum(value);
return originalMethods.range.call(this, val, element, param);
};
}(jQuery));
@ygrenier
Copy link
Author

ygrenier commented Nov 7, 2016

Correction d'un oubli de transformation de la virgule en point pour la conversion en noombre.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment