stringLength.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. (function($) {
  2. $.fn.bootstrapValidator.i18n.stringLength = $.extend($.fn.bootstrapValidator.i18n.stringLength || {}, {
  3. 'default': 'Please enter a value with valid length',
  4. less: 'Please enter less than %s characters',
  5. more: 'Please enter more than %s characters',
  6. between: 'Please enter value between %s and %s characters long',
  7. getMessage: function(options) {
  8. switch (true) {
  9. case (!!options.min && !!options.max):
  10. return $.fn.bootstrapValidator.helpers.format(this.between, [options.min, options.max]);
  11. case (!!options.min):
  12. return $.fn.bootstrapValidator.helpers.format(this.more, options.min);
  13. case (!!options.max):
  14. return $.fn.bootstrapValidator.helpers.format(this.less, options.max);
  15. default:
  16. return this['default'];
  17. }
  18. }
  19. });
  20. $.fn.bootstrapValidator.validators.stringLength = {
  21. html5Attributes: {
  22. message: 'message',
  23. min: 'min',
  24. max: 'max'
  25. },
  26. enableByHtml5: function($field) {
  27. var maxLength = $field.attr('maxlength');
  28. if (maxLength) {
  29. return {
  30. max: parseInt(maxLength, 10)
  31. };
  32. }
  33. return false;
  34. },
  35. /**
  36. * Check if the length of element value is less or more than given number
  37. *
  38. * @param {BootstrapValidator} validator The validator plugin instance
  39. * @param {jQuery} $field Field element
  40. * @param {Object} options Consists of following keys:
  41. * - min
  42. * - max
  43. * At least one of two keys is required
  44. * - message: The invalid message
  45. * @returns {Boolean}
  46. */
  47. validate: function(validator, $field, options) {
  48. var value = $field.val();
  49. if (value === '') {
  50. return true;
  51. }
  52. var length = value.length;
  53. if ((options.min && length < options.min) || (options.max && length > options.max)) {
  54. return false;
  55. }
  56. return true;
  57. }
  58. };
  59. }(window.jQuery));