Continguts:

INTRODUCCIÓ
Un formulari HTML és una secció d'un document que conté contingut normal, codi de marques, elements especials anomenats controls (caixes de test (checkboxes), botons d'elecció (radio buttons), menús, etc.), i etiquetes en aquests controls. Els usuaris generalment "completen" un formulari modificant els seus controls (entrant text, seleccionant ítems de menú, etc.), abans de sotmetre el formulari a un agent processador (per ex., a un servidor de la Xarxa, a un servidor de correu, etc.).

Nota. Més avall hi ha informació més detallada sobre els formularis.
CONTROLS
Els usuaris interactuen amb els formularis a través dels anomenats controls.

El "nom de control" d'un control ve donat pel seu atribut name. L'àmbit de l'atribut name per a un control de dins d'un element FORM és l'element FORM.

Cada control té tant un valor inicial com un valor actual, i ambdós són cadenes de caràcters. En general, el "valor inicial" d'un control pot especificar-se amb l'atribut value del control. No obstant, el valor inicial d'un element TEXTAREA ve donat pel seu contingut, i el valor inicial d'un element OBJECT d'un formulari ve determinat per la implementació de l'objecte (és a dir, queda fora de l'abast de l'especificació de l'HTML 4.0 i, per tant, d'aquest manual).

El "valor actual" d'un control primer es fixa al valor inicial. Després, el valor actual del control pot modificar-se a través de la interacció de l'usuari i dels scripts.

El valor inicial d'un control no canvia. Així, quan un formulari es reinicia, el valor actual de cada control es reinicia al seu valor inicial. Si un control no té un valor inicial el reinici del formulari dins el qual es troba té un efecte indefinit sobre aquell control.

Quan un formulari és sotmès per a ser processat, alguns controls tenen el seu nom aparellat amb el seu valor actual, i aquestes parelles se sotmeten amb el formulari. Aquells controls pels quals les parelles nom/valor són sotmeses s'anomenen controls exitosos.
Tipus de controls
botons
Es poden crear tant amb l’element INPUT com amb l’element BUTTON, el qual ofereix més prestacions. Hi ha tres tipus de botons:


caixes de test
Es creen amb l’element INPUT. Les caixes de test (i els botons d'elecció) són interruptors d’"ON/OFF" que poden ser activats per l’usuari. Un interruptor està en "ON" quan l’atribut checked de l’element de control està activat.

Quan un formulari és sotmès, només els controls de les caixes de test que estan en "ON" podran esdevenir exitosos. Diverses caixes de test d’un formulari poden compartir el mateix nom de control. D’aquesta manera, per ex., les caixes de test permeten als usuaris seleccionar diversos valors per a la mateixa propietat.

botons d'elecció
Es creen amb l’element INPUT. Són semblants a les caixes de test excepte en què quan diversos botons d'elecció comparteixen el mateix nom de control són mútuament excloents: quan un està en "ON" tots els altres amb el mateix nom es posaran automàticament en "OFF".

menús
Es creen amb l’element SELECT en combinació amb els elements OPTGROUP i OPTION. Els menús ofereixen als usuaris opcions per escollir.

entrada de text
Es poden crear dos tipus diferents de controls d'entrades de text:


En ambdós casos el text entrat esdevé el valor actual del control.

selecció de fitxers
Es crea amb l’element INPUT. Aquest tipus de control permet a l'usuari seleccionar fitxers per tal que els seus continguts puguin ser sotmesos amb un formulari.

controls ocults
Es creen amb l’element INPUT. Els autors poden crear controls ocults que no són presentats però que el seu valor és sotmès amb un formulari. Els autors generalment utilitzen aquest tipus de control per a emmagatzemar informació dels intercanvis entre el client i el servidor que d'altra manera es perdrien degut a la naturalesa inestable de l'HTTP (veieu la RFC2068).

controls d'objectes
Es creen amb l’element OBJECT. Els autors poden inserir objectes genèrics en formularis. Els valors associats a aquests controls d'objectes són sotmesos amb els altres controls.

Els elements utilitzats per crear controls de formulari generalment apareixen dins un element FORM, però també poden aparèixer fora de la declaració d'un element FORM quan s'utilitzen per construir interfícies d'usuari. Això es discuteix en l'apartat d'events intrínsecs i en el tema "Scripts". Cal observar que els controls que es troben fora d'un formulari no poden ser controls exitosos.
ELS ELEMENTS BUTTON I INPUT
El nou element BUTTON crea botons que funcionen com els butons creats amb l'element INPUT però a més ofereix unes possibilitats de presentació més riques: els botons poden tenir contingut.

Tot i amb això, l'element INPUT no es troba menyspreuat, sino que se li han afegit un grapat de nous atributs (acceskey, disabled, onblur, onchange, onfocus, onselect, readonly, tabindex i usemap) els quals fan que també ell incrementi la seva funcionalitat.
ELS ELEMENTS SELECT, OPTGROUP I OPTION
D'aquests tres elements, l'únic que és nou en l'especificació de l'HTML 4.0 és OPTGROUP.

L'element SELECT crea un menú. Cada opció oferta pel menú es representa mitjançant un element OPTION. Un element SELECT ha de contenir al menys un element OPTION.

L'element OPTGROUP permet als autors agrupar opcions lògicament. Això és de gran ajut particularment quan l'usuari ha de triar d'entre una llarga llista d'opcions; els grups d'opcions relacionades són més fàcils de comprendre i de recordar que una sola llista llarga d'opcions. En l'HTML 4.0 tots els elements OPTGROUP han d'especificar-se directament dins d'un element SELECT (és a dir, els grups d'opcions no poden aniuar-se).
ETIQUETES
Alguns controls de formulari tenen etiquetes associades automàticament a ells (com els botons de prémer) mentre que la majoria no en tenen (com els camps de text, les caixes de test i els botons d'elecció, i els menús).

Per a aquells controls que tenen etiquetes implícites, els agents d'usuari haurien d'utilitzar el valor de l'atribut value com la cadena de l'etiqueta.

L'element LABEL s'utilitza per especificar les etiquetes pels controls que no tenen etiquetes implícites.
AFEGIR ESTRUCTURA ALS FORMULARIS: ELS ELEMENTS FIELDSET i LEGEND
L'element FIELDSET agrupa cojuntament camps relacionats i, en associació amb l'element LEGEND, es pot utilitzar per a anomenar el grup. Aquests dos elements permeten una millor presentació i una millor interactivitat. Els navegadors basats en la parla poden descriure millor el formulari, i els navegadors gràfics poden fer que les etiquetes siguin sensibles.
DONAR EL FOCUS A UN ELEMENT
En un document HTML, un element ha de rebre el focus de l'usuari a fi d'esdevenir actiu i executar les seves tasques. Per exemple, els usuaris han d'activar un link especificat per un element A a fi de seguir el link especificat. De manera similar, els usuaris han de donar el focus a un TEXTAREA a fi d'entrar-hi text.

Hi ha diverses maneres de donar el focus a un element:


Navegació tabulada i tecles d'accés.

Veieu la navegació tabulada i les tecles d'accés en la definició dels atributs tabindex i accesskey, respectivament.
CONTROLS DESACTIVATS I DE NOMÉS LECTURA
En els contextos on l'entrada d'usuari és no-desitjada o irrellevant, és important poder inhabilitar un control o presentar-lo com de només lectura. Per ex., es pot desitjar inhabilitar el botó de submissió d'un formulari fins que l'usuari hagi entrat algunes dades d'obligada cumplimentació. De manera similar, un autor pot voler incloure un fragment de text de només lectura que hagi de ser sotmès com un valor amb el document.

Veieu la definició dels controls desactivats i de només lectura en la definició dels atributs disabled i readonly, respectivament.
SUBMISSIÓ DE FORMULARIS
Controls exitosos
Un control exitós és "vàlid" per a ser sotmès. Cada control exitós té el seu nom de control aparellat amb el seu valor actual com a part del conjunt de dades del formulari. Un control exitós ha d'estar definit dins d'un element FORM i ha de tenir un nom de control.

No obstant:


Si un control no té un valor actual quan el formulari és sotmès, els agents d'usuari no estan obligats a tractar-lo com a un control exitós.

A més, els agents d'usuari no haurien de considerar que els següents controls són exitosos:


Els controls ocults i els controls que no es presenten a causa de les inicialitzacions dels fulls d'estil poden encara ser exitosos. Per exemple:
	<FORM action="..." method="post">
	   <P>
	   <INPUT type="password" style="display: none"
	   name="password-invisible" value="paraulaclau">
	</FORM>
determinarà que un valor sigui aparellat amb el nom "password-invisible" i sigui sotmès amb el formulari.
VISUALITZACIÓ INCREMENTAL
La visualització incremental dels documents que es reben des de la xarxa dóna origen a certs problemes pel què fa als formularis. Els agents d'usuari haurien d'impedir que els formularis siguin sotmesos fins que tots els elements del formulari hagin estat rebuts.

La visualització incremental de documents dóna lloc a alguns aspectes que tenen a veure amb la navegació tabulada. L'heurística de donar el focus al tabindex del document amb un valor més baix sembla suficientment raonable al primer cop d'ull. No obstant, això implica haver d'esperar fins que tot el text del document s'hagi rebut, ja que fins aleshores, el tabindex amb un valor més baix encara pot canviar. Si l'usuari prem la tecla de tabulació abans d'aquest moment, és raonable que els agents d'usuari moguin el focus al tabindex més baix que es trobi actualment disponible.

Si els formularis estan associats amb scripts client-side hi ha, a més a més, uns quants problemes potencials. Per exemple, una rutina de servei per a un camp donat pot fer referència a un camp que encara no existeixi.
PROJECTES FUTURS
L'especificació de l'HTML 4.0 defineix un conjunt d'elements i atributs suficientment poderosos per a satisfer la necessitat general de produir formularis. No obstant, encara hi ha lloc per a moltes possibles millores. Per exemple, en el futur es podrien tractar aquests problemes:

Tancar
Pàgina Principal
Introducció al Manual d'HTML Dinàmic
Glossari
Referències























HTML 4.0
Introducció al manual d'HTML 4.0
Taules
Formularis
Objectes, imatges i applets
Scripts
Informació de l'idioma i sentit del text
Frames
Nous elements
Elements menyspreuats i obsolets
Fulls d'estil
Nous atributs de l'HTML 4.0
Índex d'atributs nous
Índex d'atributs menyspreuats
DTD
Annexe












Introducció als CSS
Introducció als CSS2 i al manual
Propietats CSS2
Fulls d'estil audibles
Model de caixa
Sintaxi i tipus bàsics de dades
Model de formatat visual
Detalls del model de formatat visual
Assignar valors de propietats, la cascada i l'herència
Interfície d'usuari
Efectes visuals
Text
Taules
Fonts
Contingut generat, numeració automàtica i llistes
Colors i fons
Selectors
Tipus de mitjans
Mitjans paginats
Suport de CSS2
Annexe




Introducció al DOM
DOM Nivell 1 - Nucli
DOM Nivell 1 - HTML
Articles sobre el DOM






















Programació en DHTML
Demos