script.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. 'use strict';
  2. var formulario = {};
  3. (function(formulario){
  4. formulario.cpf = document.getElementById('cpf');
  5. formulario.bairro = document.getElementById('bairro');
  6. formulario.endereco = document.getElementById('endereco')
  7. formulario.cidade = document.getElementById('cidade');
  8. formulario.estado = document.getElementById('estado');
  9. formulario.celular = document.getElementById('celular');
  10. formulario.required = document.querySelectorAll(".required");
  11. formulario.invalidElement = document.querySelector("span");
  12. })(formulario);
  13. function validatecpf(cpf) {
  14. if (cpf.length != 11) return false;
  15. let numbers = cpf.substring(0, 9)
  16. let entry = cpf.substring(9)
  17. let sum = 0;
  18. for (let i = 10; i > 1; i--) {
  19. sum += numbers.charAt(10 - i) * i;
  20. }
  21. var result = (sum % 11) < 2 ? 0 : 11 - (sum % 11);
  22. if (result != entry.charAt(0)) {
  23. return false;
  24. }
  25. sum = 0;
  26. numbers = cpf.substring(0, 10);
  27. for (let k = 11; k > 1; k--) {
  28. sum += numbers.charAt(11 - k) * k;
  29. }
  30. result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
  31. return result != entry.charAt(1) ? false : true
  32. }
  33. function validate() {
  34. const cpf = formulario.cpf.value.replace(/[^a-z0-9 ]/g, "")
  35. const requiredInputs = formulario.required;
  36. let inputIsValid = false;
  37. const cpfIsValid = validatecpf(cpf);
  38. for (let i = 0; i < requiredInputs.length; i++) {
  39. if (requiredInputs[i].value === "") {
  40. requiredInputs[i].style["border"] = "1px solid red"
  41. inputIsValid = false;
  42. } else {
  43. inputIsValid = true
  44. requiredInputs[1].style["border"] = "none"
  45. formulario.invalidElement.style["display"] = "none"
  46. requiredInputs[i].style["border"] = "none"
  47. }
  48. }
  49. if (!inputIsValid || !cpfIsValid) {
  50. window.alert("Opss! Aconteceu um erro no seu cadastro, verifique se você preencheu todos espaços necessários")
  51. cpfIsValid ? (
  52. requiredInputs[1].style["border"] = "none",
  53. formulario.invalidElement.style["display"] = "none"
  54. ) : (
  55. requiredInputs[1].style["border"] = "1px solid red",
  56. formulario.invalidElement.style["display"] = "inline"
  57. );
  58. return false
  59. }
  60. else if (cpfIsValid && inputIsValid) window.alert("Parabéns!! você foi cadastrado com sucesso")
  61. return true
  62. }
  63. function clearCepInputs() {
  64. formulario.endereco.value = ("");
  65. formulario.bairro.value = ("");
  66. formulario.cidade.value = ("");
  67. dformulario.estado.value = ("");
  68. }
  69. function retrievingCepInputs(cepInputs) {
  70. if ('erro' in cepInputs) {
  71. clearCepInputs();
  72. alert("CEP não encontrado.");
  73. return;
  74. }
  75. formulario.endereco.value = (cepInputs.logradouro);
  76. formulario.bairro.value = (cepInputs.bairro);
  77. formulario.cidade.value = (cepInputs.localidade);
  78. formulario.estado.value = (cepInputs.uf);
  79. }
  80. function searchCep(valor) {
  81. const cep = valor.replace(/\D/g, '');
  82. if (cep === "") {
  83. clearCepInputs();
  84. return;
  85. }
  86. const validateCep = /^[0-9]{8}$/;
  87. if (! validateCep.test(cep)) {
  88. clearCepInputs();
  89. alert("Formato de CEP inválido.");
  90. return;
  91. }
  92. const script = document.createElement('script');
  93. script.src = 'https://viacep.com.br/ws/' + cep + '/json/?callback=retrievingCepInputs';
  94. document.body.appendChild(script);
  95. };
  96. function cpfMask() {
  97. const length = formulario.cpf.value.length;
  98. if (length === 3 || length === 7)
  99. formulario.cpf.value = formulario.cpf.value + ".";
  100. else if (length === 11)
  101. formulario.cpf.value = formulario.cpf.value + "-";
  102. else if (length===14) length = 0
  103. }
  104. function phoneMask() {
  105. const length = formulario.celular.value.length;
  106. switch (length) {
  107. case 0:
  108. formulario.celular.value = '('
  109. break
  110. case 3:
  111. formulario.celular.value += ')'
  112. break
  113. case 5:
  114. formulario.celular.value += ' ';
  115. break
  116. case 10:
  117. formulario.celular.value += '-'
  118. break
  119. case 15:
  120. i = 0
  121. }
  122. }