Guest User

Untitled

a guest
Feb 11th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.58 KB | None | 0 0
  1. var app = {
  2. init: function() {
  3. console.log('app.init');
  4.  
  5. var formElement = document.querySelector('#login-form');
  6.  
  7. // On écoute les envois de formulaires et on redirige
  8. // vers la fonction handleFormSubmit
  9. formElement.addEventListener('submit', app.handleFormSubmit);
  10.  
  11. // On écoute les focusout des éléments du formulaire et on redirige
  12. // vers la fonction borderInputs
  13. formElement.addEventListener('focusout', app.borderInputs);
  14. },
  15.  
  16. borderInputs: function(event) {
  17. // event.target = Element ciblé par l'utilisateur
  18. if(event.target.value.length < 3) {
  19. // Erreur, donc on colore la bordure en rose/rouge
  20. event.target.style.borderColor = '#ff3860';
  21. } else {
  22. // Valide, donc on colore la bordure en vert
  23. event.target.style.borderColor = '#00d1b2';
  24. }
  25. },
  26.  
  27. handleFormSubmit: function(event) {
  28. // On empêche l'action par défaut de l'envoi du formulaire
  29. event.preventDefault();
  30.  
  31. // On vérifie les valeurs des inputs du formulaire
  32. app.checkInputs();
  33. },
  34.  
  35. checkInputs: function() {
  36. // On récupère toutes les valeurs des inputs
  37. var inputUsername = document.querySelector('#field-username').value;
  38. var inputPassword = document.querySelector('#field-password').value;
  39.  
  40. // On stock ces valeurs dans un tableau "inputs"
  41. var inputs = [inputUsername, inputPassword];
  42.  
  43. // On créé un autre tableau qui servira pour vérifier si on doit
  44. // envoyer le formulaire ou non, après vérification
  45. var inputsVerif = [];
  46.  
  47. // On supprime le contenu de l'ID errors, enlevant ainsi les erreurs précédentes
  48. document.querySelector('#errors').innerHTML = '';
  49.  
  50. // On boucle pour tous les inputs du formulaire
  51. for(var index = 0; index<2; index += 1) {
  52. // On vérifie que les valeurs des inputs sont correct
  53. if(inputs[index].length < 3) {
  54. // Dans le cas où ce n'est pas correct :
  55.  
  56. // On créé un élément de type "DIV" qui sera inséré plus tard dans la page/DOM
  57. var newDiv = document.createElement('div');
  58.  
  59. // On définit le contenu textuel de l'élément (via .textContent)
  60. newDiv.textContent = "Username a moins de 3 caractères";
  61.  
  62. // On insert dans le DOM l'élément qu'on a créé et défini,
  63. // puis on lui ajoute une class "error" avec .classList
  64. document.querySelector('#errors').appendChild(newDiv).classList.add("error");
  65.  
  66. // On modifie la case du tableau en false pour empêcher
  67. // l'envoi du formulaire
  68. inputsVerif[index] = false;
  69. } else {
  70. // Dans le cas où la valeur est correcte :
  71.  
  72. // On modifie la case du tableau en true pour
  73. // dire que l'input est valide et est prêt à être envoyé
  74. inputsVerif[index] = true;
  75. }
  76. }
  77.  
  78. // On s'assure que les deux inputs ont retourné "true" dans le tableau
  79. if(inputsVerif[0] == true && inputsVerif[1] == true) {
  80. // Si toutes les cases du tableau retournent "true" : Formulaire valide
  81.  
  82. // On réinitialise les valeurs des inputs
  83. document.querySelector('#field-username').value = '';
  84. document.querySelector('#field-password').value = '';
  85.  
  86. // On enlève les bordures vertes/roses des inputs
  87. document.querySelector('#field-username').style.border = '';
  88. document.querySelector('#field-password').style.border = '';
  89.  
  90. // document.querySelectorAll('.field-input').style.border = '1px solid #ccc'; // <- Provoque une erreur
  91. }
  92.  
  93.  
  94. /* // Ancienne logique, modifiée avec l'arrivée de la boucle for
  95. if(inputUsername.length < 3) {
  96. // On créé un élément de type "DIV" qui sera inséré plus tard dans la page/DOM
  97. var newDiv = document.createElement('div');
  98.  
  99. // On définit le contenu textuel de l'élément (via .textContent)
  100. newDiv.textContent = "Username a moins de 3 caractères";
  101.  
  102. // On insert dans le DOM l'élément qu'on a créé et défini,
  103. // puis on lui ajoute une class "error" avec .classList
  104. document.querySelector('#errors').appendChild(newDiv).classList.add("error");
  105. }
  106.  
  107. if(inputPassword.length < 3) {
  108. var newDiv = document.createElement('div');
  109. newDiv.textContent = "Password a moins de 3 caractères";
  110. document.querySelector('#errors').appendChild(newDiv).classList.add("error");
  111. }
  112. */
  113. }
  114.  
  115.  
  116. };
  117.  
  118. document.addEventListener('DOMContentLoaded', app.init);
Add Comment
Please, Sign In to add comment