Infoforall

Identification

Infoforall

Résumé 3 - INTRODUCTION AUX FORMULAIRES


Lien vers l'activité : Introduction aux formulaires

Dernière modif. : 31 01 2021

Balise Button

Il s'agit d'une balise classique (ouverture-fermeture) permettant d'afficher un bouton interactif.

1 2 3 4 5 6
<button onclick="alert('Mais pourquoi ?');" onmouseover="this.style.backgroundColor='red';" onmouseout="this.style.backgroundColor='';"> Alors, ça change quoi ? </button>

Formulaire et balise form

1 - Intérêt de la balise form

Cette balise form permet de faire trois choses :

  • obtenir les références des balises d'interaction contenues dans un formulaire
  • vérifier la validité des réponses de l'utilisateur (plus tard)
  • envoyer les réponses en GET ou POST de l'utilisateur vers un serveur distant (plus tard)


2 - Contenu et attributs d'une balise form

A l'intérieur de la balise d'ouverture, on pourra fournir

  • avec l'attribut name le nom qui permettra d'identifier le formulaire
  • avec l'attribut method la méthode GET ou POST à utiliser et
  • avec l'attribut action l'adresse du serveur distant à joindre.

Le innerHTML de la balise form contient d'autres balises : celles qui permettront à l'utilisateur de fournir des informations. La balise input de type submit permet de créer un bouton automatique d'envoi.


Une vraie balise form destinée à communiquer avec un serveur distant


1 2 3 4 5 6 7
<form name="mon_formulaire" action='https://www.infoforall.fr/act/tester-le-post/' method='get'> <button name="boutonA" onclick="modifier();">Bouton n°1</button> <button name="boutonB" onclick="modifier();">Bouton n°2</button> <input type="submit" value="Envoyer le formulaire !"> </form>


Une balise à usage purement locale destinée à de l'interaction locale

On ne s'occupe pas de l'envoi du formulaire aujourd'hui. Nous travaillerons ainsi purement en modification locale : inutile de fournir des valeurs aux attributs action et method, ni de fournir le bouton submit.


1 2 3 4
<form name="toto"> <button name="boutonA" onclick="modifier();">Bouton n°1</button> <button name="boutonB" onclick="modifier();">Bouton n°2</button> </form>

3 - Trouver les références des balises

Lorsqu'une balise input est l'enfant d'un formulaire, on peut récupérer facilement sa référence en suivant la codification : nameDuFormulaire.nameDuInput.


Sur l'exemple ci-dessous, cela peut donner : asticot.boutonA


Attention : en JS, les valeurs de l'attribut name ne sont pas à fournir en tant que strings mais directement en tant que valeurs.

1 2 3 4 5 6 7 8
<form name="asticot" method='' action=''> <button type="button" name="boutonA" onclick="toto.boutonA.style.backgroundColor='red';">Bouton n°1</button> </form> <form name="toto"> <button type="button" name="boutonA" onclick="asticot.boutonA.style.backgroundColor='red';">Bouton n°3</button> </form>

Description des balises d'interaction

Balise input de type number

Cette balise orpheline (sans innerHTML) permet à l'utilisateur de rentrer un entier.

1 2 3 4 5
<form name="saisie" method='' action=''> <input type="number" name="choix"> <button type="button" name="affiche" onclick="alert(2*saisie.choix.value);">Afficher le double</button> </form>


Pour récupérer la valeur d'une balise input, il faut utiliser nameFormulaire.nameInput.value.

Balise output

Ce type de balise permet d'afficher le résultat d'une évaluation à l'écran. D'où le OUT : vers l'extérieur.

1 2 3 4 5 6 7 8 9 10 11 12 13
<form name="saisie" method='' action=''> <input type="number" name="x"> <button type="button" name="affiche" onclick="hexa(saisie.x.value);"> Afficher le résultat en hexadécimal </button> <output name="resultat"></output> </form> <script> function hexa(valeur) { let en_hexa = parseInt(valeur).toString(16); saisie.resultat.innerHTML = en_hexa; } </script>

Balise input de type button

La balise button est une balise classique (avec ouverture-fermeture) et possède donc un attribut innerHTLM.


La balise input de type button est une balise orpheline. Elle ne possède donc pas de innerHTML mais un attribut value.

1 2
<input type="button" onclick="alert('Mais pourquoi ?');" value="Ne pas toucher !">

Méthode toString(base)

Cette méthode permet de transformer un entier fourni en base 10 par défaut dans une autre base :

parseInt(saisie.x.value).toString(16)

Evénement change

Cet événement est très pratique sur les formulaires : il permet de relancer un script lorsque l'utilisateur a changé son entrée.

1 2 3 4 5 6
<form name="changement" method='' action=''> <input type="text" name="zdt" value="Texte de base, à vous de le modifier."> <br>Couleur du fond : <input type="text" name="fond" value="" onchange="changement.zdt.style.backgroundColor=this.value;"> </form>