validation.blade.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. /* contact form validation */
  4. var Validator = function(formObject) {
  5. this.form = $(formObject);
  6. var Elements = {
  7. name: {
  8. reg: /^[a-zA-Z ]{2,20}$/,
  9. require: true,
  10. error: "Nama Tidak Valid.",
  11. },
  12. companyName: {
  13. reg: /^(?=.{2,100}$).*$/,
  14. require: true,
  15. error: "Nama Perusahaan Max 50 karakter.",
  16. },
  17. email: {
  18. reg: /^[a-z-0-9_+.-]+\@([a-z0-9-]+\.)+[a-z0-9]{2,7}$/i,
  19. error: "E-mail tidak valid",
  20. },
  21. phone: {
  22. reg: /^\(?([0-9])\)?$/,
  23. error: "Nomor Telp harus diisi nomor.",
  24. },
  25. year: {
  26. reg: /^\(?([0-9]{1,4})\)?$/,
  27. error: "Tahun Terlalu lebih.",
  28. },
  29. number: {
  30. reg: /^[0-9]+(?!\s*$)*$/,
  31. error: "Harap Isi angka.",
  32. },
  33. date: {
  34. reg: /([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/,
  35. error: "Harap Isi tanggal sesuai format yang sesuai pada browser anda.",
  36. },
  37. message: {
  38. reg: /^(?!\s*$).+/,
  39. error: "Data Tidak Boleh Kosong.",
  40. },
  41. decimal: {
  42. reg: /^\d*\.?\d*$/,
  43. error: "Harap Isi Angka.",
  44. },
  45. gender: {
  46. error: "Jenis Kelamin Tidak Valid / Kosong",
  47. },
  48. selectOption: {
  49. error: "Data Ini Kosong",
  50. required: true
  51. }
  52. };
  53. var handleError = function(element, message) {
  54. element.addClass('input-error');
  55. var $err_msg = element.parent('td');
  56. $err_msg.find('.error').remove();
  57. var error = $('<div class="error"></div>').text(message);
  58. error.appendTo($err_msg);
  59. element.on('keypress change', function() {
  60. $(error).fadeOut(1000, function() {
  61. element.removeClass('input-error');
  62. });
  63. });
  64. };
  65. /* Select Option */
  66. this.validate = function() {
  67. var errorCount = 0;
  68. this.form.find("select").each(function(index, field) {
  69. var type = $(field).data("validation");
  70. var validation = Elements[type];
  71. if ($(field).val() == "") {
  72. errorCount++;
  73. handleError($(field), validation.error);
  74. }
  75. });
  76. this.form.find("input, textarea").each(function(index, field) {
  77. var type = $(field).data("validation");
  78. var validation = Elements[type];
  79. if (validation !== undefined) {
  80. var re = new RegExp(validation.reg);
  81. if (validation) {
  82. if (!re.test($(field).val())) {
  83. errorCount++;
  84. handleError($(field), validation.error);
  85. }
  86. }
  87. }
  88. })
  89. /* Radio button */
  90. var radioList = $('input:radio');
  91. var radioNameList = new Array();
  92. var radioUniqueNameList = new Array();
  93. var notCompleted = 0;
  94. for (var i = 0; i < radioList.length; i++) {
  95. radioNameList.push(radioList[i].name);
  96. }
  97. radioUniqueNameList = jQuery.unique(radioNameList);
  98. for (var i = 0; i < radioUniqueNameList.length; i++) {
  99. var field = $('#' + radioUniqueNameList[i]);
  100. var type = field.data("validation");
  101. var validation = Elements[type];
  102. if ($('input[name=' + type + ']:checked', '#test').val() == undefined) {
  103. errorCount++;
  104. handleError($(field), validation.error);
  105. }
  106. }
  107. return errorCount == 0;
  108. };
  109. };
  110. /* Submit form*/
  111. $(function() {
  112. $("form#form-validate").on('submit', function(e) {
  113. var NoErrors = new Validator(this).validate();
  114. if (NoErrors == true) {
  115. // $.ajax({
  116. // url: this.action,
  117. // enctype: 'multipart/form-data',
  118. // type: 'POST',
  119. // data: $(this).serialize(),
  120. // processData: false,
  121. // success: function() {
  122. // // AJAX request finished, handle the results and error msg
  123. // $('input[type!="submit"], textarea').removeClass('error');
  124. // // console.log(data);
  125. // window.location.href = $('#route').val();
  126. // }
  127. // });
  128. $('#form-validate').ajaxForm();
  129. }
  130. return false;
  131. });
  132. var NoErrors = new Validator(this).validate();
  133. });
  134. });
  135. </script>