Sto provando ad usare un NumberValidator per validare un numero decimale. Il codice che posto qui sotto è volutamente semplice, giusto di esempio, per mostrare la questione:
Quando premo INVIO sul campo valueFrom dovrebbe essere eseguita la validazione. Se il numero è corretto dovrebbe essere generato l'evento valid e quindi il codice dovrebbe copiare il valore nel TextInput sotto. Se il numero è errato dovrebbe cancellare il campo sotto (e evidenziare l'errore visualmente) a seguito dell'evento invalid.codice:<?xml version="1.0" encoding="iso-8859-1" ?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:NumberValidator source="{valueFrom}" property="text" domain="real" trigger="{valueFrom}" triggerEvent="enter" /> <mx:Panel title="Test" height="100%" width="100%" paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10"> <mx:TextInput id="valueFrom" valid="valueTo.text=valueFrom.text" invalid="valueTo.text=''" /> <mx:TextInput id="valueTo" editable="false" /> </mx:Panel> </mx:Application>
Ma si comporta in un modo direi "strano" e che non capisco. Se subito digito 12 INVIO (un numero corretto), il numero non viene copiato sotto. Bisogna prima sbagliare es. mettere 12abc INVIO, a quel punto il campo sotto viene cancellato e viene evidenziato l'errore. Se subito dopo correggo in 12 poi INVIO, allora il valore lo copia sotto.
E la cosa continua così ... cioè numeri corretti non li accetta più e devo di nuovo sbagliare.
Insomma ... bisogna prima sbagliare per poter successivamente avere l'input valido e quindi fare la copia nel campo sotto con quella assegnazione.
Non capisco il perché .... ma è molto probabile che o non ho capito come funziona un NumberValidator o non l'ho usato nel modo corretto.
Suggerimenti? Grazie.

Rispondi quotando