empty.html 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <!doctype html>
  2. <html lang="">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="x-ua-compatible" content="ie=edge">
  6. <title></title>
  7. <meta name="description" content="">
  8. <meta name="viewport" content="width=device-width, initial-scale=1">
  9. <link rel="stylesheet" href="css/empty.css">
  10. <style>
  11. .ok-vegane { color: green; }
  12. .pas-vegane { color: red; font-weight: bold; }
  13. </style>
  14. <style>
  15. .btn { padding: 10px; border-radius: 3px; }
  16. .btn-primary { background: #aaf; border: 1px solid #aaf; }
  17. .btn-secondary { background: #aff; border: 1px solid #aff; }
  18. .active { font-weight: bold; }
  19. </style>
  20. </head>
  21. <body>
  22. <h4>Inscrire une personne</h4>
  23. <div id="message-erreur"></div>
  24. <form id="nouvel-abonne">
  25. <input type="text" name="nom" placeholder="Nom" /><br>
  26. <input id="annee" type="text" name="annee" placeholder="Année de naissance" /><br>
  27. <button id="bouton-submit" type="submit">Soumettre</button>
  28. </form>
  29. <ol id="liste-abonnes"></ol>
  30. <script>
  31. // Variables
  32. var formulaire = document.getElementById('nouvel-abonne');
  33. var inputAnnee = document.getElementById('annee');
  34. var messageErreur = document.getElementById('message-erreur');
  35. var boutonSubmit = document.getElementById('bouton-submit');
  36. var listeAbonnes = document.getElementById('liste-abonnes');
  37. // Handlers
  38. function inscritAbonne(evt) {
  39. // TRES important : empêche l'évènement de se poursuivre
  40. evt.preventDefault();
  41. // Récupère le formulaire (on aurait pu utiliser formulaire)
  42. var form = evt.target;
  43. // Récupère les champs de saisie de CE formulaire
  44. var inputs = form.getElementsByTagName('input');
  45. // Crée un objet vide pour stocker les valeurs saisies
  46. var valeurs = {};
  47. for(var i = 0 ; i < inputs.length ; i++) {
  48. var input = inputs[i];
  49. // Associe la valeur saisie à la clé (nom du champ)
  50. valeurs[input.name] = input.value;
  51. // Efface la valeur du champ !
  52. input.value = '';
  53. }
  54. console.log(valeurs);
  55. // Crée un nouvel item à insérer dans la liste
  56. var item = document.createElement('li');
  57. item.innerHTML = valeurs.nom + ", né en " + valeurs.annee;
  58. // Insère l'item
  59. listeAbonnes.appendChild(item);
  60. }
  61. function verifieAnnee(evt) {
  62. var input = evt.target;
  63. var valeurTexte = input.value;
  64. // Convertit une chaîne en entier... si possible !
  65. var valeurEntiere = parseInt(valeurTexte);
  66. if(valeurTexte.length > 0 && Number.isNaN(valeurEntiere)) {
  67. messageErreur.innerHTML = "La valeur '" + valeurTexte + "' n'est pas valide !";
  68. boutonSubmit.disabled = true;
  69. }
  70. else {
  71. messageErreur.innerHTML = '';
  72. boutonSubmit.disabled = false;
  73. }
  74. }
  75. formulaire.addEventListener('submit', inscritAbonne);
  76. inputAnnee.addEventListener('keyup', verifieAnnee);
  77. </script>
  78. </body>
  79. </html>