main.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*!
  2. * jQuery Ideal Forms
  3. * @author: Cedric Ruiz
  4. * @version: 3.0
  5. * @license GPL or MIT
  6. */
  7. (function($, win, doc, undefined) {
  8. var plugin = {};
  9. plugin.name = 'idealforms';
  10. plugin.defaults = {
  11. field: '.field',
  12. error: '.error',
  13. iconHtml: '<i/>',
  14. iconClass: 'icon',
  15. invalidClass: 'invalid',
  16. validClass: 'valid',
  17. silentLoad: true,
  18. onValidate: $.noop,
  19. onSubmit: $.noop
  20. };
  21. plugin.global = {
  22. _format: function(str) {
  23. var args = [].slice.call(arguments, 1);
  24. return str.replace(/\{(\d)\}/g, function(_, match) {
  25. return args[+match] || '';
  26. }).replace(/\{\*([^*}]*)\}/g, function(_, sep) {
  27. return args.join(sep || ', ');
  28. });
  29. },
  30. _getKey: function(key, obj) {
  31. return key.split('.').reduce(function(a,b) {
  32. return a && a[b];
  33. }, obj);
  34. },
  35. ruleSeparator: ' ',
  36. argSeparator: ':',
  37. rules: require('./rules'),
  38. errors: require('./errors'),
  39. extensions: [
  40. require('./extensions/dynamic-fields/dynamic-fields.ext'),
  41. require('./extensions/ajax/ajax.ext'),
  42. require('./extensions/steps/steps.ext'),
  43. require('./extensions/custom-inputs/custom-inputs.ext'),
  44. require('./extensions/datepicker/datepicker.ext')
  45. ]
  46. };
  47. plugin.methods = $.extend({}, require('./private'), require('./public'));
  48. require('./plugin')(plugin);
  49. }(jQuery, window, document));