be_forms_validation.js 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. /*
  2. * Document : be_forms_validation.js
  3. * Author : pixelcave
  4. * Description: Custom JS code used in Form Validation Page
  5. */
  6. var BeFormValidation = function() {
  7. // Init Bootstrap Forms Validation, for more examples you can check out https://github.com/jzaefferer/jquery-validation
  8. var initValidationBootstrap = function(){
  9. jQuery('.js-validation-bootstrap').validate({
  10. ignore: [],
  11. errorClass: 'invalid-feedback animated fadeInDown',
  12. errorElement: 'div',
  13. errorPlacement: function(error, e) {
  14. jQuery(e).parents('.form-group > div').append(error);
  15. },
  16. highlight: function(e) {
  17. jQuery(e).closest('.form-group').removeClass('is-invalid').addClass('is-invalid');
  18. },
  19. success: function(e) {
  20. jQuery(e).closest('.form-group').removeClass('is-invalid');
  21. jQuery(e).remove();
  22. },
  23. rules: {
  24. 'val-username': {
  25. required: true,
  26. minlength: 3
  27. },
  28. 'val-email': {
  29. required: true,
  30. email: true
  31. },
  32. 'val-password': {
  33. required: true,
  34. minlength: 5
  35. },
  36. 'val-confirm-password': {
  37. required: true,
  38. equalTo: '#val-password'
  39. },
  40. 'val-select2': {
  41. required: true
  42. },
  43. 'val-select2-multiple': {
  44. required: true,
  45. minlength: 2
  46. },
  47. 'val-suggestions': {
  48. required: true,
  49. minlength: 5
  50. },
  51. 'val-skill': {
  52. required: true
  53. },
  54. 'val-currency': {
  55. required: true,
  56. currency: ['$', true]
  57. },
  58. 'val-website': {
  59. required: true,
  60. url: true
  61. },
  62. 'val-phoneus': {
  63. required: true,
  64. phoneUS: true
  65. },
  66. 'val-digits': {
  67. required: true,
  68. digits: true
  69. },
  70. 'val-number': {
  71. required: true,
  72. number: true
  73. },
  74. 'val-range': {
  75. required: true,
  76. range: [1, 5]
  77. },
  78. 'val-terms': {
  79. required: true
  80. }
  81. },
  82. messages: {
  83. 'val-username': {
  84. required: 'Please enter a username',
  85. minlength: 'Your username must consist of at least 3 characters'
  86. },
  87. 'val-email': 'Please enter a valid email address',
  88. 'val-password': {
  89. required: 'Please provide a password',
  90. minlength: 'Your password must be at least 5 characters long'
  91. },
  92. 'val-confirm-password': {
  93. required: 'Please provide a password',
  94. minlength: 'Your password must be at least 5 characters long',
  95. equalTo: 'Please enter the same password as above'
  96. },
  97. 'val-select2': 'Please select a value!',
  98. 'val-select2-multiple': 'Please select at least 2 values!',
  99. 'val-suggestions': 'What can we do to become better?',
  100. 'val-skill': 'Please select a skill!',
  101. 'val-currency': 'Please enter a price!',
  102. 'val-website': 'Please enter your website!',
  103. 'val-phoneus': 'Please enter a US phone!',
  104. 'val-digits': 'Please enter only digits!',
  105. 'val-number': 'Please enter a number!',
  106. 'val-range': 'Please enter a number between 1 and 5!',
  107. 'val-terms': 'You must agree to the service terms!'
  108. }
  109. });
  110. };
  111. // Init Material Forms Validation, for more examples you can check out https://github.com/jzaefferer/jquery-validation
  112. var initValidationMaterial = function(){
  113. jQuery('.js-validation-material').validate({
  114. ignore: [],
  115. errorClass: 'invalid-feedback animated fadeInDown',
  116. errorElement: 'div',
  117. errorPlacement: function(error, e) {
  118. jQuery(e).parents('.form-group').append(error);
  119. },
  120. highlight: function(e) {
  121. jQuery(e).closest('.form-group').removeClass('is-invalid').addClass('is-invalid');
  122. },
  123. success: function(e) {
  124. jQuery(e).closest('.form-group').removeClass('is-invalid');
  125. jQuery(e).remove();
  126. },
  127. rules: {
  128. 'val-username2': {
  129. required: true,
  130. minlength: 3
  131. },
  132. 'val-email2': {
  133. required: true,
  134. email: true
  135. },
  136. 'val-password2': {
  137. required: true,
  138. minlength: 5
  139. },
  140. 'val-confirm-password2': {
  141. required: true,
  142. equalTo: '#val-password2'
  143. },
  144. 'val-select22': {
  145. required: true
  146. },
  147. 'val-select2-multiple2': {
  148. required: true,
  149. minlength: 2
  150. },
  151. 'val-suggestions2': {
  152. required: true,
  153. minlength: 5
  154. },
  155. 'val-skill2': {
  156. required: true
  157. },
  158. 'val-currency2': {
  159. required: true,
  160. currency: ['$', true]
  161. },
  162. 'val-website2': {
  163. required: true,
  164. url: true
  165. },
  166. 'val-phoneus2': {
  167. required: true,
  168. phoneUS: true
  169. },
  170. 'val-digits2': {
  171. required: true,
  172. digits: true
  173. },
  174. 'val-number2': {
  175. required: true,
  176. number: true
  177. },
  178. 'val-range2': {
  179. required: true,
  180. range: [1, 5]
  181. },
  182. 'val-terms2': {
  183. required: true
  184. }
  185. },
  186. messages: {
  187. 'val-username2': {
  188. required: 'Please enter a username',
  189. minlength: 'Your username must consist of at least 3 characters'
  190. },
  191. 'val-email2': 'Please enter a valid email address',
  192. 'val-password2': {
  193. required: 'Please provide a password',
  194. minlength: 'Your password must be at least 5 characters long'
  195. },
  196. 'val-confirm-password2': {
  197. required: 'Please provide a password',
  198. minlength: 'Your password must be at least 5 characters long',
  199. equalTo: 'Please enter the same password as above'
  200. },
  201. 'val-select22': 'Please select a value!',
  202. 'val-select2-multiple2': 'Please select at least 2 values!',
  203. 'val-suggestions2': 'What can we do to become better?',
  204. 'val-skill2': 'Please select a skill!',
  205. 'val-currency2': 'Please enter a price!',
  206. 'val-website2': 'Please enter your website!',
  207. 'val-phoneus2': 'Please enter a US phone!',
  208. 'val-digits2': 'Please enter only digits!',
  209. 'val-number2': 'Please enter a number!',
  210. 'val-range2': 'Please enter a number between 1 and 5!',
  211. 'val-terms2': 'You must agree to the service terms!'
  212. }
  213. });
  214. };
  215. return {
  216. init: function () {
  217. // Init Bootstrap Forms Validation
  218. initValidationBootstrap();
  219. // Init Material Forms Validation
  220. initValidationMaterial();
  221. // Init Validation on Select2 change
  222. jQuery('.js-select2').on('change', function(){
  223. jQuery(this).valid();
  224. });
  225. }
  226. };
  227. }();
  228. // Initialize when page loads
  229. jQuery(function(){ BeFormValidation.init(); });