Newsgroup: it.comp.lang.javascript
Titolo: [Forse O.T.] comportamento strano text-area

Ciao a tutti,
Spero che la domanda sia attinente, anche se non sň se č proprio un problema 
js..
 
ho un form di richiesta informazioni e nella text-area in cui scrivere il 
contenuto del messaggio, volevo che comparisse la scritta "scrivi qua il tuo 
messaggio" e volevo fare in modo che quando un utente clicca per immettere 
testo, scompaia la scritta da sola.
 
Ho fatto cosě:
<textarea cols="100" rows="6" name="messaggio" onFocus="this.value=''; 
return false;" >Scrivi qui la tua richiesta</textarea>
 
Funziona tutto bene, ma la text-area non accetta gli spazi da tastiera... 
qualcuno mi sa spiegare il motivo e come risolvere?
 
grazie mille.
 
p.s. Se volete vedere la pagina dove c'č il form č qua: 
http://www.isola-ecologica.com/caricatori-metalli-rifiuti-industriali#form
 
 
 
bye
Fabry 
 
 

 qualcuno mi sa spiegare il motivo e come risolvere?
 
Le due cose non sono assolutamente collegate. Anche in tutti gli altri
campi di testo lo spazio (e non solo, anche le frecce destra/sinistra ad
esempio) non vengono "accettati", come dici tu.
Il discorso � molto semplice. In quella pagina c'� uno script, tale
"jquery.galleriffic.js", che intercetta la pressione dei tasti e, in
corrispondenza di alcuni (vedasi spazio ad esempio), fa alcune azioni
inibendo il comportamento di default (usando il metodo
`event.preventDefault`).
 
Ignoro l'origine di tale script, immagino che chi l'abbia creato l'abbia
pensato per una pagina "stand alone", ovvero dove esiste solo la gallery
e nient'altro; dato che � troppo invasivo e inibisce il corretto
funzionamento del resto della pagina.
 
Per risolvere il problema, ed eventuali altri problemi simili in futuro,
ti consiglio di cambiare gallery.
 
Alternativamente, un "rattoppo" temporaneo potrebbe essere di evitare la
propagazione dell'evento della pressione del tasto, in modo che non
raggiunga mai il listener della gallery. Visto che usi jQuery, qualcosa
del tipo:
 
    $(function() {
        $("form").keydown(function(event) {
            event.stopPropagation();
        });
    });
 
In questo modo, se l'evento di tastiera avviene in un campo racchiuso da
un elemento "form", evita che venga propagato.

 return false;" >Scrivi qui la tua richiesta</textarea>
 
Non e` una cosa molto furba: se cambi campo e poi torni alla textarea, ti 
cancella tutto e ti tocca riscriverlo. :)
 
Visto che usi jQuery, ci sono dei plugin appositi che mettono la label 
sovrapposta alla textarea e la fanno sparire quandi ci clicchi. O 
perlomeno dovresti verificare il contenuto della textarea sia al focus 
che al blur (per rimettere il testo nel caso sia vuota).
 
Ah, ultima cosa: mettere il javascript inline e` proprio 
bruttobruttobrutto. :)
 
Bye.
 

 e nient'altro; dato che è troppo invasivo e inibisce il corretto


 ha scritto nel messaggio 
news:9iksl3...@mid.individual.net...


 tipo prestazionale?
 
Sia per il motivo che citi, sia per la pulizia del codice, che ti rende 
piu` semplice modificarlo poi. E` il principio alla base anche dell'MVC: 
separazione dei compiti. Come non devi mettere i css inline, non devi 
mettere nemmeno il javascript.
Separando le tre cose hai piu` possibilita` di riutilizzo, e, 
incidentalmente, ti auto-forzi anche a scrivere codice migliore.
 
Bye.