Drupal - Come impostare il valore di default in un form

Drupal - Come impostare il valore di default in un form

A volte può essere necessario dover impostare il valore predefinito di un campo in un form Drupal. Ad esempio il classico "Cerca nel sito..." nei form di ricerca. Nel momento in cui l'utente clicca sul campo il valore scompare e si può immettere una stringa.

Versione con jQuery

Si può ottenere facilmente questo risultato usando jQuery attraverso gli eventi focus e blur. Per prima cosa si imposta il valore di default tramite defaultValue. Poi, quando il controllo riceve il click e quindi ottiene il focus, il valore di default viene rimosso. Infine si associa al blur una funzione che reinserisce il valore di default nel caso il contenuto sia vuoto.

Una implementazione interessante è quella di estendere questa tecnica nascondendo anche l'etichetta del campo ed usarla come valore predefinito nel caso non sia specificata una stringa personalizzata. In pratica si può scrivere un plugin per jQuery con una funzione che accetta come parametro una stringa personalizzata e, nel caso questa sia vuota, si usa l'etichetta del campo come valore predefinito.

Alternativa Drupal a jQuery

Una alternativa molto più semplice è il modulo per Drupal hint che permette di ottenere lo stesso risultato ed offre anche un hook per utilizzare questa funzionalità nei propri moduli Drupal. Il modulo hint è disponibile per Drupal 7 e per Drupal 6.

Versione in HTML5

Il nuovo linguaggio HTML5 offre nativamente questa funzionalità nei tag input grazie all'attributo placeholder. Esempio:

<input placeholder="Cerca nel sito..." />

Questo è sicuramente il metodo più semplice e, man mano che il supporto per HTML5 sarà sempre più diffuso, gli altri sistemi descritti andranno nel dimenticatoio.

Invia nuovo commento
Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
Refresh Type the characters you see in this picture. Type the characters you see in the picture; if you can't read them, submit the form and a new image will be generated. Not case sensitive.  Switch to audio verification.