Activitats

Creació de formularis HTML

L’objectiu d’aquesta activitat és aprendre a crear formularis.

Implementeu un formulari d’autenticació que permeti entrar el nom d’usuari i la contrasenya, i que inclogui un botó per enviar el formulari a l’URL www.example.com fent servir el mètode POST.

S’ha d’incloure l’URL de destí com a atribut action del formulari i el mètode, com a atribut method. Els camps per entrar el nom d’usuari i la contrasenya han de tenir un atribut name que s’utilitzaria al servidor com a clau per identificar els valors.

  1. <form action="http://example.com" method="POST">
  2. <fieldset>
  3. <legend>Autenticació</legend>
  4. <label>Nom d'usuari:<input type="text" name="usuari"/></label><br>
  5. <label>Contrasenya:<input type="password" name="contrasenya"/></label><br>
  6. <input type="submit"/>
  7. </fieldset>
  8. </form>

Podeu veure aquest exemple en l’enllaç següent: codepen.io/ioc-daw-m06/pen/YGYWqb?editors=1000.

Modificació d'aspecte de formularis

L’objectiu d’aquesta activitat és aprendre a modificar l’aparença d’un formulari.

A partir d’un formulari d’autenticació, doneu-li format aplicant les regles d’estil CSS per canviar el gruix de la font de les etiquetes a negreta i color blanc, el color de fons a blau i l’amplada del contenidor a 170 px. A més a més s’ha de mostrar centrat a la pàgina.

Per modificar l’estil s’ha d’afegir el codi CSS en un fitxer extern o incrustat a la capçalera entre les etiquetes style:

  1. <style>
  2. form {
  3. width:170px;
  4. background-color: blue;
  5. margin: 0 auto;
  6. }
  7.  
  8. label {
  9. font-weight: bold;
  10. color: white;
  11. }
  12. </style>
  13.  
  14. <form action="http://example.com" method="POST">
  15. <fieldset>
  16. <legend>Autenticació</legend>
  17. <label>Nom d'usuari:<input type="text" name="usuari"/></label><br>
  18. <label>Contrasenya:<input type="password" name="contrasenya"/></label><br>
  19. <input type="submit" />
  20. </fieldset>
  21. </form>

Podeu veure aquest exemple en l’enllaç següent: codepen.io/ioc-daw-m06/pen/WGdxrO?editors=1100.

Validació de formularis

L’objectiu d’aquesta activitat és aprendre a validar formularis fent servir les propietats d’HTML5.

Implementeu un formulari d’autenticació que inclogui els camps i regles de validació següents:

  • nom d’usuari: ha de tenir entre 4 i 8 caràcters.
  • correu: ha de ser un correu vàlid.
  • pin: ha de ser un nombre enter entre 0 i 9999.

En tots tres casos s’ha de fer servir l’atribut required per evitar que s’enviï el formulari amb el camp buit.

En el cas del nom, s’ha d’indicar el nom del camp i la llargària màxima i mínima amb els atributs maxlength i minlength, respectivament.

Pel correu només cal especificar que el tipus és email per activar la validació.

Per acabar, el pin ha de ser de tipus number i s’ha d’indicar el valor mínin i màxim amb els atributs min i max, respectivament.

  1. <form action="http://example.com" method="POST">
  2. <fieldset>
  3. <legend>Autenticació</legend>
  4. <label>Nom d'usuari:<input type="text" name="usuari" minlength="4" maxlength="8" required/></label><br>
  5. <label>Correu:<input type="email" name="correu" required/></label><br>
  6. <label>Pin:<input type="number" name="pin" min="0" max="9999" required/></label><br>
  7. <input type="submit" />
  8. </fieldset>
  9. </form>

Podeu veure aquest exemple en l’enllaç següent: codepen.io/ioc-daw-m06/pen/zKpBRm?editors=1000.

Ús d'expressions regulars per validar formularis

L’objectiu d’aquesta activitat és aprendre a utilitzar les expressions regulars per validar dades.

Fent servir l’atribut pattern d’HTML5 afegiu la validació per números de telèfon amb el següent format: xxx-xxx-xxx. És a dir, si s’entra 900-000-000 o 900 000 000 seria vàlid, però 900-00-00-00 seria incorrecte.

La clau per resoldre aquesta activitat és recordar que la propietat pattern permet validar les dades utilitzant una expressió regular i, seguidament, codificar l’expressió corresponent al format demanat:

  • Tres nombres consecutius: \d{3}
  • Seguits d’un guió o un espai: [ -]
  • Tres nombres consecutius: \d{3}
  • Seguits d’un guió o un espai: [ -]
  • I per acabar, tres nombres consecutius: \d{3}

Així doncs, l’expressió que valida aquest format és: \d{3}[ -]\d{3}[ -]\d{3}.

  1. <form action="http://example.com" method="POST">
  2. <fieldset>
  3. <legend>Telèfon</legend>
  4. <label>Telèfon:<input type="text" name="telefon" pattern="\d{3}[ -]\d{3}[ -]\d{3}" required placeholder="xxx-xxx-xxx o xxx xxx xxx"/></label><br>
  5. <input type="submit" />
  6. </fieldset>
  7. </form>

Podeu veure aquest exemple en l’enllaç següent: codepen.io/ioc-daw-m06/pen/ozpLQv?editors=1000.

Utilització de galetes

L’objectiu d’aquesta activitat és aprendre a desar i recuperar valors guardats com a galetes.

Fent servir galetes, implementeu les funcions necessàries per guardar la informació dels productes seleccionats a un carretó electrònic. Serà necessari fer servir com a clau l’identificador del producte, i com a valor, la quantitat.

Tingueu en compte que per tractar el contingut de les galetes s’acostumen a fer servir expressions regulars, ja que encara que l’expressió en si pot resultar més complicada, el codi final se simplifica molt.

Per exemple, si es fes servir el mètode split() de les cadenes de text, primer es requeriria fer una divisió pel caràcter ; per dividir els parells clau i valor; seguidament, iterar-los, dividir-los a partir del caràcter = i, finalment, comprovar si el primer element correspon a l’identificador del producte. En canvi, fent servir expressions regulars s’obté el mateix resultat amb un parell de línies de codi.

Són necessaris com a mínim dues funcions: una per guardar la galeta i una altra per recuperar-la. La primera no representa cap problema, ja que només cal concatenar l’identificador del producte amb el símbol = i la quantitat.

Per altra banda, el mètode recuperarGaleta() ha d’utilitzar una expressió regular new RegExp(“(?:” + idProducte + “)=(.+?)(?=;|$)”, “g”);, a la qual s’ha incrustat l’identificador del producte. El retorn de la funció és l’execució del patró sobre el contingut global de les galetes.

  1. function guardarGaleta(idProducte, quantitat) {
  2. document.cookie = idProducte + "=" + quantitat;
  3. }
  4.  
  5. function recuperarGaleta(idProducte) {
  6. let patro = new RegExp("(?:" + idProducte + ")=(.+?)(?=;|$)", "g");
  7. return patro.exec(document.cookie)[1];
  8. }
  9.  
  10. // Codi de proves
  11. guardarGaleta('cadira', 8);
  12. guardarGaleta('taula', 2);
  13.  
  14. console.log('Nombre de cadires: ' + recuperarGaleta('cadira'));
  15. console.log('Nombre de taules: ' + recuperarGaleta('taula'));

Podeu veure aquest exemple en l’enllaç següent: codepen.io/ioc-daw-m06/pen/wzpWVq?editors=0011.

Anar a la pàgina anterior:
Programació amb formularis
Anar a la pàgina següent:
Exercicis d'autoavaluació