Newsgroup: it.comp.lang.javascript
Titolo: Si può fare?

Ciao a tutti, vorrei sepere se posso fare la seguente cosa in JavaScript.
Dunque, ho alcuni campi di tipi text, e vorrei fare in modo che l'utente
dopo che abbia inserito un certo numero di caratteri, automaticamente il
cursore si sposti sulla casella di testo successiva, per esempio, ho una
data divisa in tre caselle di testo, giorno, mese, anno, l'utente inserisce
il giorno, poi automaticamente il cursore si sposta sul mese e poi sull'anno
senza dover premere il tasto tab o cliccare con il mouse.
Se si può fare come posso risolvere la cosa?
Grazie anticipatamente.

 Grazie anticipatamente.
Prego


Aspetta Gianni, c'e' un problema.
Se l'utente per disgrazia sbaglia i dati e volesse cancellare occorre
inventarsi molte acrobazie di mouse e tastiera, roba da sala giochi, insomma
:-)

 :-)
Non capisco? Puoi essere piu' chiaro. Figurati che mi aspettavo dei mega
ringraziamenti per la generosita' di codice  :"((

 Figurati che mi aspettavo dei mega ringraziamenti per la generosita' di codice  :"((
Vabbe', non hai scritto un papiro.. e benche' i ringraziamenti siano 
sempre graditi, non sempre vengono dispensati.. se rispondi ai problemi 
delle persone per il solo piacere di ottenere ringraziamenti, caschi 
male. ;)
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 male. ;)
NO, io rispondo per aumentare la gioia di voi Big; infatti, come in questo
caso, vi trovate a "dover" risolvere i problemi iniziali del thread e a
sistemare i casini che combino io :)


Ma non basterebbe togliere l'event handler onKeyDown per poter modificare a
piacere i campi testo?
Anzi, visto che ci sono, una curiosita':
- ma perche' sono stati messi sia il keyDown che il keyUp?

 piacere i campi testo?
No... mi sembra che funzioni solo se prima selezioni...

 Cosa che ultimamente non tutti fanno, VERO!?! :) (:
Io ho sempre fornito tutti i codici funzionanti (e spesso ottimizzati) 
atti a risolvere i problemi delle questioni di cui mi prendevo carico; 
come tutti possono testimoniare tranquillamente in questo NG.
A cosa ti riferisci?


 - ma perche' sono stati messi sia il keyDown che il keyUp?
Allo stesso modo per cui sono stati messi sia onmouseup che onmousedown 
;) (e piu' eventi ci sono, piu' liberta' hai).


 consapevole) aspetto che lo ottimizzi lui. :)
MA prego, non mi offendo mica, però non usare select!

 A cosa ti riferisci?
Ma ad es,: a quel thread del conteggio della texarea, dove hai lasciato la
suspance sull'event handler da usare per farlo funzionare con IE in caso di
un incollaggio col mouse...

 però non usare select!
Oibo', e perche' mai non dovresti usarlo? Come ho detto prima, e' il 
modo migliore per evitare questo genere di inconvenienti, e te ne sei 
accorto anche tu, mi pare, dopo che hai scritto il tuo script.. o no? E 
perche', dover far male una cosa quando si sa come farla bene?
Scusa, ma proprio mi sfugge il senso di questa tua affermazione.. :)


 un incollaggio col mouse...
Non era una questione di cui mi ero preso carico :) Quindi il tuo 
discorso cade..
Ho semplicemente detto che si puo' tranquillamente fare su IE.. In modo 
che non si pensi che fosse "impossibile" o ci volesse una tonnellata di 
codice per sviluppare un approccio di quel tipo.. La mia era solamente 
un imbeccata per stimolare i frequentatori dell'NG che non fossero 
proprio newbie, alla ricerca della soluzione.
E mi pare di averlo anche detto. :)


 Scusa, ma proprio mi sfugge il senso di questa tua affermazione.. :)
Semplice, gia' prima di scrivere mezza riga di codice sospettavo che fosse
piu' semplice, pero' non era quello che si richiedeva...
[remember]
"ho alcuni campi di tipi text, e vorrei ...."

 proprio newbie, alla ricerca della soluzione.
giusto, quindi onmouse.... op on...???

 "ho alcuni campi di tipi text, e vorrei ...."
Aaah... Hai confuso quel che ho detto. :) Ed evidentemente, non hai 
capito proprio come ottimizzare la cosa, come credevo inizialmente. :) 
Ti do' un piccolo aiuto. Non intendevo il tag SELECT ma il method select
(), come avevo specificato nel mio post usando le parentesi.. ;)
.. Non ti fa scattare alcun campanellino, su come ottimizzare lo script? 
;)


 giusto, quindi onmouse.... op on...???
Nono. Se ti interessa arrivare alla soluzione, studia per conto tuo. 
Vedi come arrivare alla soluzione (ricorda che e' solo per IE.. cio' e' 
un suggerimento non indifferente), e quando pensi di averla trovata, 
fammelo sapere. Senza fretta ne' impegno.. solo se ti va, e tra un buco 
libero e l'altro.. Del resto, ripeto, io ho dato un imbeccata. Ma 
nessuno e' obbligato a seguirla. Puoi anche altamente fregartene, se il 
problema (o meglio la soluzione) non ti interessa. :)


 Nono. Se ti interessa arrivare alla soluzione, studia per conto tuo.
Ma che bel aiuto! Grazie!-:

 ;)
Mah, ora come ora gli unici movimenti che registro sono quelli delle mie
palle che girano talmente veloce che mi devo aggrappare alla scrivania per
non decollare! :)

 Ma che bel aiuto! Grazie!-:
Non sei un newbie, e quindi non ti posso trattare come tale. Sarebbe 
anche uno sminuire cio' che sai fare. :)


 non decollare! :)
Non ne capisco il motivo.. :) Se non che', sei poco costruttivo e - a 
quanto pare - piu' distruttivo che altro.. Cmq non preoccuparti, se e' 
questo l'effetto che i miei suggerimenti devono farti, non sono certo un 
sadico, e cerchero' in futuro di evitare di fartene.


 far tutto da solo.
Effettivamente e' un discorso che in generale puo' anche andar bene...

 sadico, e cerchero' in futuro di evitare di fartene.
No, meglio di niente! Per come sono fatto io e per l'uso che ne faccio dello
JS, per me e' piu' utile un altro approccio, comunque e' molto meglio di
niente...

 niente...
Ma e' mia personalissima opinione, che questo tipo di approccio 
"insegni" di piu'.. e quindi io, personalmente, seguo questo. :) Non 
tanto a livello di conoscenze acquisite in se', quanto come forma 
mentale.


 Effettivamente e' un discorso che in generale puo' anche andar bene...
Allora evito anche di riquotare ;)


 dici dove lo vedi il senso? O meglio, il "movente"? :)
Ma no tranquillo...
Ma lo sai che non riesco a risolvere perfettamente il problema dei 3 campi
per la data, anche usando select() (o meglio per come l'ho usato io) volendo
ci possono essere dei problemi! Non che poi me ne frechi piu' di tanto (e
dormo bene la notte) ma dammi un altro paio di indizzi...

 dormo bene la notte) ma dammi un altro paio di indizzi...
Ah, neanche io dormo la notte. Ma perche' soffro d'insonnia. :)
Beh, non so che tipo di problemi hai adesso.. cmq il difetto da 
"Fatality di Mortal Kombat" del tuo precedente script avresti dovuto 
risolverlo tranquillamente con il select().. Se posti lo script e mi 
dici che tipo di problemi ti sono nati adesso, vedo di capirci un po' di 
piu'. :)


 piu'. :)
Volentieri:
<html>
<head>
<script>
function TextLimit(maxlimit,field,nextfield)
{
 if(field.value.length>=maxlimit)
  nextfield.select();
}
</script>
</head>
<body>
<form>
  <input type="text" name="giorno" size="2" maxlength="2"
onKeyUp="TextLimit(2,this,this.form.mese)" onFocus="this.select()">
  <input type="text" name="mese" size="2" maxlength="2"
onKeyUp="TextLimit(2,this,this.form.anno)" onFocus="this.select()">
  <input type="text" name="anno" size="4" maxlength="4"
onKeyUp="TextLimit(4,this,this.form.giorno)" onFocus="this.select()">
</form>
</body>
</html>
Ora probabilmente l'uso che ne ho fatto delle "select()" non e' corretto,
comunque così +o- funziona, pero' non devo usare il mouse...infatti, se
clicco sul campo gia' scritto tolgo la selezione e se provo a correggerlo a
quel punto non ci riesce piu'....

 quel punto non ci riesce piu'..
Ed e' giusto cosi', non ti pare? Per quale motivo, via mouse o tastiera, 
dovrei togliere la select? Per potermi muovere col cursore, e cancellare 
magari un solo valore invece di entrambi. Ed eventualmente aggiungerne 
un altro.
Se io tolgo la selezione, e mi posiziono in mezzo a due valori (ad 
esempio nel campo giorno) e premo un tasto per inserire un nuovo valore, 
SENZA AVERNE CANCELLATO ALCUNO (ne' con canc, ne' con backspace), NON 
DEVE elaborare quest'istruzione, perche' non posso tenere piu' di due 
caratteri, e due caratteri gia' ce l'ho nel campo "giorno".. quel che 
vorrei fare io sarebbe "inserire" un carattere aggiuntivo.
Se non voglio inserire, ma "sovrascrivere" il carattere sul quale mi 
sono posizionato, premo il tasto "ins" sulla tastiera come si fa da che 
mondo e' mondo. :)
Quindi il behavior e' logicamente corretto.
Cmq se proprio ci tieni ci sono modi per gestire la cosa, ma non solo ti 
vai ad impelagare in un codice che sarebbe preferibile evitare, ma vai 
contro logica.. il che ' male.
In ogni caso, potresti provare a gestire la selection (cosa che fa anche 
NS4.x) e divertirti..


 e divertirti..
veramente avrei altre cose da fare, tanto piu' che il Tizio che ha richiesto
la cosa non si e' piu' fatto vivo...

 la cosa non si e' piu' fatto vivo...
Allora lascia perdere. :)


 Probabilmente e' il tuo script che lo "sega".
quello sě...

 quello sě...
CVD :)


 Homesite.
Un mio amico mi ha appena dato "Studio MX" ed ero gia' abbastanza fiero
(forse queste cose non dovrei dirle, sono fottuto?!?), ora dove lo pesco
"Homesite" :(