Newsgroup: it.comp.lang.javascript
Titolo: cursore e form...

Ciao ragazzi,
risolto un altro problema, mi rimane adesso l'ultimo per ora, e cioè..... io
ho un form, contenente delle TEXT, TEXTAREA, SELECT etc.
Ho fatto un controllo che verifica la correttezza dei dati inseriti appunto
tramite le regular expression... e quindi in caso di errore, visualizza una
alert.
Il problema adesso è che vorrei fare in modo che il cursore, si posizionasse
sull'oggetto in cui è stato generato l'errore anzichè andare in quello
successivo.
Mi spiego meglio, supponiamo che ho due campi di testo X1 e X2, il cursore
si trova su x1; inserisco il dato errato e premo TAB, a questo punto viene
visualizzata la finestra di errore e appena confermo il corsore si posiziona
su X2.
Io vorrei che anziche posizionarsi su X2, fosse su X1.
Ringrazio anticipatamente a chi saprà rispondermi.
Cooper.
-- 
------------------------------------
BlueWare di Impastato Marcello
 [web] 
http://www.blueware.it
 [msn] 
coo...@blueware.it
 [icq] 146781935
 [Irc] 
http://www.italchat.it

 Ringrazio anticipatamente a chi saprà rispondermi.
Si andrebbe meglio con il codice, cmq, dopo l'istruzione
    alert('messaggio di errore');
prova ad aggiungere
    document.nomedelform.X1.focus();
Ciao. Angiblu

 ha scritto nel messaggio
news:bekiu4$vtl$1...@lacerta.tiscalinet.it...

Provato, ma non funziona, o meglio non da l'effetto desiderato :(
Cooper


 Provato, ma non funziona, o meglio non da l'effetto desiderato :(
E allora spiega meglio "qual'e' l'effetto desiderato", perche' ad 
occhio quel che ti ha detto Angela e' esattamente la risposta alla tua 
domanda.
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)


Ok, per semplicità supponiamo un form con due TEXT, che chiamo T1 e T2.
L'utente inserisce un dato e se questo è errato visualizza una alert. essun
problema fino a qui.
Ora supponiamo che mi trovo su T1, inserisco il dato errato... e mi appare
la alert, appena confermo cliccando su Ok, ritorna al modulo, ma stavolta il
cursore (prompt) si è spostato su T2.
Io voglio fare in modo che dopo che confermo sulla alert, il cursore se era
su T1, ritorni su T1 oppure se era su T2 ritorni su T2 e non invece che se
si trova su T1, dopo l'alert... va su T2.
Uhm provato, ma con la risposta di Angela, non ho risolto, tutto qui :(
Cooper.


 Uhm provato, ma con la risposta di Angela, non ho risolto, tutto qui :(
Il codice che ti ha fornito Angela e' giusto, evidentemente e' stato 
inserito in una posizione non corretta per ottenere l'effetto voluto.
Dipede tutto da come viene eseguito il check degli errori sui vari 
campi. Nell'onblur di ciascun campo? Nell'onsubmit della form?
Insomma, com'e' strutturato il tutto?


 setTimeout('document.nomedelform.X1.focus();',200);
Mai successo.. ti e' capitato anche su piattaforme Windows? Perche' su 
Mac non ho avuto mai modo di testare, ma non mi e' mai stato notificato 
alcun comportamento anormale.
Te lo chiedo, perche' son sempre cose che fa bene saperle. :)


 seguito del controllo (fallito) presento una alert.
Ha senso.
Primo, normalmente tali controlli io non li faccio usando l'onchange 
(tendo ad usare poco tale evento, tranne che per le select 
eventualmente) ed e' quindi piu' probabile che non abbia in effetti 
riscontrato un comportamento del genere.
Secondo, puo' forse in tale contesto esserci un "accavallamento" di 
"focus" (abbiamo due settaggi di focus, uno dato a livello di GUI 
l'altro a livello di codice per intenderci; e l'alert e' uno statement 
"bloccante".. ci sono tutti gli ingredienti per poter avere un 
comportamento simile a quello da te descritto).
Magari appena ho un paio di minuti faccio qualche rapido testo, giusto 
per vedere se riesco a replicare la situazione.


 errore... ovviamente era "tenderei a NON considerare" :-P
Ovviamente :P Non preoccuparti, era chiaro dal contesto, ma fa sempre 
bene specificare.


 affidata a javascript e css.
Molto volentieri. Mi risparmi qualche linea di codice, e mi sembra cmq 
una cosa interessante :) La mia mail e' in chiaro, invia pure i dati.
