Newsgroup: it.comp.lang.javascript
Titolo: uscita da un campo e richiesta asincrona

salve a tutti.
ho un problemino con una form che invia i dati in maniera asincrona
all'uscita da ogni singolo campo e lato server eseguo una sorta di
validazione o comunque delle operazioni sul dato mentre l'utente
continua a riempire la form.
il problema è nel tipo di evento usato, mi spiego: supponendo di avere
due campi in "cascata" e l'invio sull'evento onBlur e supponendo che il
primo apra un alert() e il secondo invece evidenzi l'errore scrivendolo
accanto al campo se esco dal primo usando il tab e il campo non è
valido si apre l'alert che toglie il fuoco al secondo campo che fa
partire la validazione senza un tubero scritto dentro o cmq con un dato
parziale.
ho provato anche a metterlo sull'onChange ma se l'utente è proprio
"gnucco" e non cambia il valore anche dopo che è stato segnalato
l'errore la validazione ovviamente non riparte...
avete qualche suggerimento da darmi?

 ho un problemino con una form che invia i dati in maniera asincrona
leggendo quello che scrivi direi che il problema sta qua: invia in maniera
sincrona.
-- 
"e mai che mi sia venuto in mente
 di essere più ubriaco di voi
 di essere molto più ubriaco di voi"
									  F.D.A.

 sincrona.
non fa una piega solo che perderei questa parte:
"eseguo una sorta di validazione o comunque delle operazioni sul dato
mentre l'utente
continua a riempire la form. "
l'utente sarebbe bloccato nell'attesa della risposta del server...

 l'utente sarebbe bloccato nell'attesa della risposta del server...
Cioè? non vuoi bloccare l'utente ma ... quindi cosa deve succedere
esattamente? se l'utente digita mentre è in corso l'operazione?
Mi sembra tu voglia una cosa e anche il suo contrario...
-- 
"La realtà è un'illusione causata dall'assenza di alcool."
									      A.

 avete qualche suggerimento da darmi?
Da parte mia eliminerei l'alert.
-- 
~ Confondi il mondo, sorridi tutti i lunedì!

 Mi sembra tu voglia una cosa e anche il suo contrario...
perchè una cosa e anche il suo contrario?
ho due campi distinti e lato server eseguo su questi due campi delle
operazioni distinte (può essere anche la stessa operazione ma comunque
le due chiamate sono indipendenti) e voglio poter continuare a riempire
un campo dopo che un altro ha fatto la sua richiesta al server ed
eventualmente che questo secondo campo invii la sua richiesta anche se
la risposta dal primo non è arrivata quindi mi sembra che la chiamata
da fare sia asincrona.
questo è che vorrei... il problema si pone nella gestione degli
eventi... con l'onBlur se il primo campo come risposta ha un alert()
sottrae il focus al secondo che fa partire la richiesta non voluta
perchè magari non ho ancora scritto niente in quel campo (anche
perchè al momento lavoro in locale e l'application server non esegue
nessuna elaborazione si limita a sparare l'xml di risposta).
questo problema ovviemnte non si pone se invece dell'alert() segnalo
solo la risposta vicino al campo in questione ma voelvo un po' più di
libertà... ;-)
grazie

 Da parte mia eliminerei l'alert.
ok grazie.
 stavo dando un'occhiata alla gestione dell'oggetto Event che non
conosco minimamente. avete idea se mi può essere utile?
grazie

 conosco minimamente. avete idea se mi può essere utile?
Non ti è utile, ma fondamentale. Difficilmente però ti potrà aiutare in
questo caso, soprattutto a livello crossbrowser, a meno che non si vada a
fare gli accroccri di cui sopra. Ma essendo una libreria, non puoi
permetterti cose del genere, perché perderesti di generalizzazione.
-- 
~ Il tempo è quello che fai di lui.

ok capito!
grazie mille!
sono abbastanza novizio di javascript e più lo uso meno mi piace! ;-)
è troppo "libero" per me.. preferisco strutture più rigide! ;-)

 sono abbastanza novizio di javascript e più lo uso meno mi piace! ;-)
L'impatto è un po' duro spesso, soprattutto da chi viene dalla
programmazione canonica; per una serie di fattori (che ho elencato spesso e
volentieri in questo NG e quindi stavolta passo la mano).
Il punto fondamentale è non confondere javascript con tutto quello che ci
puoi fare. Ad esempio, il problema di cui abbiamo parlato poc'anzi non fa
parte di Javascript, bensì del DOM del browser.
-- 
~ "Ciò che il cuore conosce oggi, la testa comprenderà domani" (Seneca)