Les formulaires peuvent contenir plusieurs boutons permettant d'accomplir différentes actions telles que la soumission ou la réinitialisation.

Un formulaire HTML a la possiblité de contenir cinq types spécifiques de boutons.

<input type="submit" name="Identifiant">
<input type="reset" name="Identifiant">
<input type="image" name="Identifiant">
<input type="button" name="Identifiant">
<button name="Identifiant">...</button>

Parmi, ces éléments HTML, seuls les boutons de type submit et image sont capables de renvoyer des informations à une application ASP.

Les noms de ces boutons permettent au fichier destinataire d'identifier l'élément sur lequel l'utilisateur a cliqué.

Par ailleurs, la valeur du bouton est renvoyée à une application ASP, au même titre que toutes les autres valeurs d'éléments de la collection Form.

Ainsi, il devient possible de connaître quel bouton a été actionné et adapté en conséquence la réponse au client.

<form action="traitement.asp" method="post">
  ...
  <input type="submit" name="navigation" value="sommaire">
  <input type="submit" name="navigation" value="précédent">
  <input type="submit" name="navigation" value="suivant">
  <input type="submit" name="navigation" value="sommaire général">
</form>

Dans l'exemple ci-dessous, un clic sur le bouton ayant la valeur précédent provoque la soumission du formulaire, et partant, de ces données ainsi que de la valeur du bouton lui-même.

navigation = précédent

Dans le cas où chaque bouton doit posséder la même apparence sans label, la longueur de la chaîne de caractères retournée détient un rôle central. La méthode permettant de repérer facilement le bouton cliqué des autres peut se faire comme ceci :

<!-- Formulaire -->
<form action="traitement.asp" method="post">
  ...
  <input type="submit" name="sommaire" value="&nbsp;&nbsp;">
  Retourner au sommaire...
  <input type="submit" name="précédent" value="&nbsp;&nbsp">
  Aller à la page précédente...
  <input type="submit" name="suivant" value="&nbsp;&nbsp">
  Aller à la page suivante...
  <input type="submit" name="somm_gen" value="&nbsp;&nbsp">
  Retourner au sommaire principal...
</form>
<!-- Fichier de traîtement traitement.asp -->
If Len(Request.Form("sommaire")) Then
  Response.Write "Vous avez cliqué sur le bouton sommaire !"
ElseIf Len(Request.Form("précédent")) Then
  Response.Write "Vous avez cliqué sur le bouton précédent !"
ElseIf Len(Request.Form("suivant")) Then
  Response.Write "Vous avez cliqué sur le bouton suivant !"
ElseIf Len(Request.Form("somm_gen")) Then
  Response.Write "Vous avez cliqué sur le bouton sommaire général !"
EndIf

L'instruction Len() permet de tester la longueur de la chaîne de caractère retournée. Si la longueur est non-nul, les instructions s'exécutent sinon elles sont ignorées.

Les boutons de type image fonctionnent d'une manière différente.

<input 
           type="image"
           name="Identifiant"
           src="Adresse.url"
           alt="Texte">

Un clic sur ce genre de bouton, provoque l'envoi d'une chaîne de caractères, indiquant le nom du bouton et les coordonnées horizontale et verticale du point cliqué.

sommaire.x=3&sommaire.y=7

Ainsi, la récupération des données s'effectue par l'intermédaire de l'objet QueryString. Ainsi, il est possble de déterminer quel bouton a été actionné en testant la présence de son nom dans la chaîne de requête ou encore en s'appuyant sur sa zone cliquable.

Exemple [voir]
<!-- Formulaire -->
<html>
  <body>
    <form action="traitement.asp" method="get">

      <input 
           type="image" 
           src="../../images/interface/fleche.gif"
           name="sommaire"
           alt="Retourner au sommaire"> 
      <input 
           type="image"
           src="../../images/interface/flecheg.gif"
           name="precedent"
           alt="Aller au document précédent"> 
      <input 
           type="image" 
           src="../../images/interface/fleched.gif"
           name="suivant"
           alt="Aller au document suivant"> 
      <input 
           type="image"
           src="../../images/interface/flechedbl.gif"
           name="som_gen"
           alt="Retourner au sommaire général">

    </form>
  </body>
</html>
<!-- Fichier destinataire traitement.asp -->
<html>
  <body>
    <%
      If Instr(Request.QueryString, "sommaire") > 0 Then
        Response.Redirect "../formulaire.html"
      End If
      If Instr(Request.QueryString, "precedent") > 0 Then
        Response.Redirect "../form_listechoix.html"
      End If
      If Instr(Request.QueryString, "suivant") > 0 Then
        Response.Redirect "../form_exemple.html"
      End If
      If Instr(Request.QueryString, "som_gen") > 0 Then
        Response.Redirect "../sommaire.html"
      End If
    %>
  </body>
</html>