In riferimento a this MSDN page (o qualsiasi pagina correlata in materia), si afferma che:Perché l'evento LostFocus viene chiamato in momenti diversi?
Quando si cambia la messa a fuoco utilizzando la tastiera, messa a fuoco si verificano eventi in seguente ordine:
- Inserisci
- Attivato
- Lascia
- Convalida
- Convalidato
- LostFocus
Tuttavia, quando si utilizza il mouse per raccogliere gli eventi, i cambiamenti di ordine!
Quando si cambia la messa a fuoco utilizzando il mouse o chiamando il metodo di messa a fuoco, messa a fuoco gli eventi si verificano nel seguente ordine:
- Enter
- Attivato
- LostFocus
- Invia
- Convalida
- convalidato
Non sarebbe questo fare la catena di eventi completamente diversi? La mia interpretazione qui è che la catena della tastiera assicura che tutto funzioni correttamente, quindi solleva l'evento LostFocus
. Tuttavia, gli eventi del mouse sembrano sollevarlo prima di convalidare per qualche motivo. Perché?
È quella Attenzione! nell'articolo MSDN che hai collegato formulato abbastanza forte? Non usare mai LostFocus, lascia solo. Ora non importa più. –
Non sto mettendo a fuoco, però. Sono solo curioso di sapere perché l'ordine cambia in base al metodo di input. –
La navigazione da tastiera deve essere in questo ordine per poter applicare le convalide. Quelli sono destinati a reagire a loro al fine di convalidare qualsiasi stringa immessa.Significato, se si passa attraverso le "caselle di testo" Riceverai un altro ordine di eventi, quindi navigando via mouse, ciò che consente a YOu di reagire DIRETTAMENTE dopo aver emesso qualche input. Ti è stato d'aiuto? – icbytes