7. Formularis, I

 

Índex

Captació de dades amb un formulari

Els formularis serveixen per a captar dades subministrades per l'usuari. En el cas més general les dades són enviades a un document del servidor, on són processades. L'estructura del formulari és semblant a la següent:

Hi ha dos mètodes de tramesa, POST i GET. Amb el primer, les dades trameses queden ocultes; amb el segon, s'uneixen a l'adreça del document de destí amb el format

Les dades poden ésser de diversos tipus, especialment:

Amb el recurs al JavaScript, el camp d'acció dels formularis s'amplia lleugerament; són possibles les actuacions següents:

De moment ens ocuparem dels processos en què les dades no abandonen el document. Ateses aquestes característiques, no cal indicar-hi ni action ni method.

Més endavant ens ocuparem del cas en què les dades són trameses a un altre document local. El cas en què les dades van a parar al servidor queda fora de l'abast del JavaScript i, per tant, d'aquest curs.

 

Elements dels formularis identificats amb name

Els formularis i els seus elements es poden identificar en HTML amb un nom, mitjançant l'atribut name.

En JavaScript, i des del punt de vista del DOM, els formularis són objectes de document. Els elements del formulari són objectes del formulari corresponent. I els continguts de cada un dels elements són una propietat d'aquests, que rep el nom de value.

Suposem que tenim un formulari que anomenem dadespersonals; l'especificació d'aquest formulari serà donada per

Dins aquest formulari hi ha un camp de text d'una línia (input type="text"), que rep el nom de primercognom; aquest camp quedarà especificat per

Finalment, aquest element té un contingut; aquest és designat per

Exemple

 

Elements dels formularis identificats amb id

Si en HTML assignem identificadors id als elements, podrem identificar-los en JavaScript mitjançant getElementById(). En aquest cas, com ja hem dit, podem prescindir d'identificar tots els objectes que no siguin rellevants; per exemple, el formulari com a conjunt pot quedar sense nom ni identificador.

Exemple

 

Les matrius dels formularis

El conjunt dels formularis presents en un document constitueix la matriu forms[n]. Al seu torn, els elements que componen cada un dels formularis constitueixen sengles matrius elements[n]. La numeració comença sempre per 0.

Per tant també podem designar els elements dels formularis amb la fórmula

En aquest cas no és imprescindible donar nom ni identificador als formularis i als seus elements.

Exemple

Aquest procediment té un parell d'inconvenients: d'una banda, s'hi perd la força expressiva dels identificadors name o id; de l'altra, qualsevol modificació posterior del document pot alterar la situació relativa dels elements i, per tant, la numeració dins la matriu.

 

Lectura i escriptura

Els camps de text poden servir tant per recollir les dades que hi introdueix l'usuari com per a presentar les dades elaborades pel programa. És recomanable, per a prevenir possibles errors de l'usuari, aplicar l'atribut readonly als camps de text de presentació de dades.

Si tenim una variable anomenada localitat i volem transferir el seu valor al camp ciutat del formulari dades escriurem

(o qualsevol expressió equivalent amb les altres formes de designar l'element).

Inversament, si volem llegir el contingut d'un camp i passar-lo a una variable serà

(o qualsevol expressió equivalent amb les altres formes de designar l'element).

Les dades numèriques entrades a través d'un camp de text tenen inicialment el caràcter de cadenes de text. Si cal emprar-les en càlculs matemàtics, cal aplicar-hi la funció eval().

Exemple