jquery.validate-french.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*!
  2. ** Support des formats français pour la validation des nombres et des dates
  3. */
  4. (function ($) {
  5. // Sauvegarde les méthodes de base
  6. var originalMethods = {
  7. min: $.validator.methods.min,
  8. max: $.validator.methods.max,
  9. range: $.validator.methods.range
  10. };
  11. // Analyse un nombre
  12. var parseFrenchNum = function (str) {
  13. str = str.replace(",", ".").replace(" ", "");
  14. return parseFloat(str);
  15. };
  16. // Analyse une date
  17. var parseFrenchDate = function (str) {
  18. return new Date(str);
  19. };
  20. // Traitement des nombres
  21. $.validator.methods.number = function (value, element) {
  22. var val = parseFrenchNum(value);
  23. return this.optional(element) || ($.isNumeric(val));
  24. };
  25. // Traitement des dates
  26. $.validator.methods.date = function (value, element) {
  27. var val = parseFrenchDate(value);
  28. return this.optional(element) || (val instanceof Date);
  29. };
  30. // Traitement des règles sur les nombres
  31. $.validator.methods.min = function (value, element, param) {
  32. var val = parseFrenchNum(value);
  33. return originalMethods.min.call(this, val, element, param);
  34. };
  35. $.validator.methods.max = function (value, element, param) {
  36. var val = parseFrenchNum(value);
  37. return originalMethods.max.call(this, val, element, param);
  38. };
  39. $.validator.methods.range = function (value, element, param) {
  40. var val = parseFrenchNum(value);
  41. return originalMethods.range.call(this, val, element, param);
  42. };
  43. }(jQuery));