21
WEB: CLIENT 2 COURS 08

WEB: CLIENT 2

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WEB: CLIENT 2

WEB: CLIENT 2COURS 08

Page 2: WEB: CLIENT 2

PLAN▸ Retour sur le laboratoire #2

Vous devez me présenter votre projet durant les périodes d’exercice pour en démontrer le fonctionnement et recevoir une rétroaction(et votre note…)

▸ Interactivité en JavaScript: Formulaires et évènements

▸ Exercices

Page 3: WEB: CLIENT 2

Interactivité en JavaScript

Page 4: WEB: CLIENT 2

FORMULAIRES - COMPOSANTS▸ Standards: texte, nombre, cases à cocher, etc.

▸ HTML5: couleurs, date, intervalle(slider), etc.

Page 5: WEB: CLIENT 2

COMPOSANTS - EXEMPLE▸ Balises

▸ input

▸ textarea

▸ select

▸ button

▸ Pour l’instant, nous retirons les composants de la balise f o r m p o u r r é c u p é r e r manuellement les données avec JavaScript

Page 6: WEB: CLIENT 2

COMPOSANTS - VALIDATIONS▸ On peut offrir une meilleure expérience utilisateur en offrant certaines validations

des données directement dans le formulaire. ▸ On valide TOUJOURS du côté serveur quand même.

▸ Attribut required pour les données obligatoires

▸ Attribut pattern pour forcer un format(Utilise le mécanisme d’expressions régulières: regex, regular expression)

▸ Attributs minlength et maxlengthPour les inputs de type number: min et max

▸ Pour des validations plus approfondies, on doit utiliser JS

▸ https://codepen.io/anon/pen/rYpoKE

Page 7: WEB: CLIENT 2

FORMULAIRES - RÉFÉRENCES▸ Composants

https://htmlreference.io/forms/https://www.w3schools.com/html/html_form_elements.asp

▸ Validationshttps://www.w3schools.com/html/html_form_input_types.asp https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Form_validation

▸ Utilisation en JShttps://www.w3schools.com/js/js_validation.asp https://eloquentjavascript.net/2nd_edition/18_forms.html .value, .checked, .selected, …

Page 8: WEB: CLIENT 2

INTERACTIVITÉ EN JAVASCRIPT▸ Jusqu’à maintenant, JavaScript nous a permis de construire dynamiquement le contenu

d’une page web

▸ Nous avons eu une interaction minimale avec notre utilisateur en utilisant les alertes ou même la console…

▸ Donc, la logique de notre programme influence le contenu et l’expérience de consommation de l’utilisateur

▸ On souhaite maintenant offrir à l’utilisateur la possibilité de participer directement à l’expérience offerte par la page web

▸ En combinant les formulaires et les évènements(clic, saisie, touches, etc.) on peut récupérer efficacement des données auprès de l’utilisateur et les utiliser dans notre logique applicative

Page 9: WEB: CLIENT 2

ÉVÈNEMENTS▸ On peut demander aux éléments du DOM de nous informer de certains

changements d’état(évènement) et y réagir via JavaScript.

▸ Clic

▸ Survol de la souris

▸ Changement de valeur

▸ Appui/relâchement d’une touche

▸ On peut spécifier plusieurs évènements, ex: clic ET survol de la souris

▸ Évènement disponibles: https://www.w3schools.com/jsref/dom_obj_event.asp

Page 10: WEB: CLIENT 2

S’INSCRIRE À UN ÉVÈNEMENT▸ Via les attributs HTML

▸ On spécifie directement le nom de l’évènement en tant qu’attribut et la valeur est le code JavaScript à exécuter.

À ÉVITER!

Page 11: WEB: CLIENT 2

S’INSCRIRE À UN ÉVÈNEMENT▸ Via les attributs en JavaScript

Page 12: WEB: CLIENT 2

S’INSCRIRE À UN ÉVÈNEMENT▸ Via les fonctions JavaScript

▸ On demande à l’élément DOM d’inscrire un évènement (on peut enregistrer plusieurs fois le même évènements, les fonctions seront appelées dans l’ordre de l’ajout): addEventListener

▸ On précise le nom de l’évènement (sans le on) en 1er paramètre: click, mouseover, …

▸ On indique la fonction à appeler (anonyme ou standard): function() { … } , hello

▸ En utilisant la même syntaxe, on peut aussi removeEventListener(…, …)

Page 13: WEB: CLIENT 2

RÉCUPÉRER LES INFORMATIONS DE L’ÉLÉMENT VISÉ▸ Essayons de créer des boutons dynamiquement en JavaScript à partir du

tableau [“A”, “B”, “C”] et afficher une alerte indiquant le texte du bouton ainsi que sa position dans le tableau lorsqu’il est cliqué

Page 14: WEB: CLIENT 2

RÉCUPÉRER LES INFORMATIONS DE L’ÉLÉMENT VISÉ

🤔

Page 15: WEB: CLIENT 2

RÉCUPÉRER LES INFORMATIONS DE L’ÉLÉMENT VISÉ

🥳

Page 16: WEB: CLIENT 2

ÉVÈNEMENTS - RÉFÉRENCES▸ Utiliser les évènements

https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events https://www.w3schools.com/js/js_htmldom_eventlistener.asp

▸ Liste des évènements disponibleshttps://www.w3schools.com/jsref/dom_obj_event.asp

▸ Exemples d’évènementshttps://www.w3schools.com/js/js_events_examples.asp

▸ Manipuler les composants de formulaire en JShttps://www.w3schools.com/js/js_input_examples.asp

▸ Validations avancées en JShttps://www.w3schools.com/js/js_validation_api.asphttps://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Form_validation

Page 17: WEB: CLIENT 2

Exercices

Page 18: WEB: CLIENT 2

EXERCICES▸ Pour tous les exercices, utilisez le mécanisme de fichier .js externe pour créer les éléments

DOM via JavaScript, exploitez ensuite les évènements pour offrir différentes interactions a l’utilisateur.

1. Afficher la table de multiplication d’un nombre, par exemple pour 4: Utiliser une liste déroulante contenant les valeur de 1 à 100 et mettre à jour la table de multiplication lorsque l’utilisateur sélectionne une valeur.

Page 19: WEB: CLIENT 2

EXERCICES2. Afficher les nombres premiers inférieurs à un nombre Utilisez un slider en combinaison avec une zone de saisie numérique pour permettre à l’utilisateur de choisir le nombre. Lorsque la valeur du slider change la valeur de la zone de saisie est mise à jour et vice-versa.

Page 20: WEB: CLIENT 2

EXERCICES3. Calculer la somme des nombres contenus dans un tableau.

Permettez à l’utilisateur d’ajouter une valeur via une zone de saisie, de supprimer un item du tableau et de réinitialiser le tableau.

Page 21: WEB: CLIENT 2

EXERCICES4. Faire un formulaire qui demande le nom et l’année de naissance de l’utilisateur. On peut

également supprimer une ligne du tableau. Afficher les données saisies dans un tableau en modifiant la couleur du texte selon l’âge.Aller plus loin: Ajouter une action Edit pour modifier les valeurs d’une ligne, supporter le tri sur les colonnes Nom et Age.