Could you perhaps just use/call the isStructureValid() function of 
the validator class whenever you return from the remote call.  Seems 
like it might be the easiest way to deal with this AND just give one 
last check of the form fields.


--- In [email protected], "bhaq1972" <[EMAIL PROTECTED]> wrote:
> Hi
> 
> I'm doing an async call (using the Pending call procedure) in my 
> extended TextInput (which has a <mx:Validator> object attached).
> 
> I save the validator object reference in a class variable (so i can 
> use it in the result handler later on), but when I return to the 
> result handler i dont get the red box appearing.
> 
> I have a work around for this but i wanted to make sure i wasn't 
> doing something wrong.
> 
> Here's some test code. You will need to make your own async call 
> (mine's checking to see if a code exists and returning a 
> description...standard stuff!).
> 
> 
> test.mxml
> ---------
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"; 
> xmlns:nx="*" backgroundColor="#C0DCC2">
> 
>   <mx:RemoteObject id="remote1" 
> endpoint="http://localhost/flashremoting/gateway.aspx"; 
> source="FlexTestClassLibrary.Class1" showBusyCursor="true" 
> fault="alert(event.fault.faultstring, 'Error')"/>
>  
>   <mx:TextArea id="out" width="200" height="100" text="(1)Enter 
> anything (except 'test') into 1st textinput. this gives a redbox[a 
> synchronous validation]. (2)Enter an invalid code into the 2nd 
> textinput [asynchronous validation]"/>
> 
>   <mx:Panel title="anothertest" height="150" >
>     <mx:FormItem label="sync:" required="true">
>       <nx:myTextInput id="ti_1"/>
>     </mx:FormItem>
>     <mx:FormItem label="async" required="true">
>       <nx:myTextInput id="ti_2" lookup="true"/>
>     </mx:FormItem>
>     <mx:Text id="text1"/>
>   </mx:Panel>
> 
> </mx:Application>
> 
> 
> 
> myTextInput.mxml
> ----------------
> <mx:TextInput xmlns:mx="http://www.macromedia.com/2003/mxml"; >
> 
> <mx:Model id="theModel">
>   <text>{text}</text>
> </mx:Model>
> 
> 
> <mx:Validator field="theModel.text" validate="customValidate( 
> event.validator, event.value )" listener="this" />
> 
> 
> <mx:Script>
> <![CDATA[
> 
>       public var lookup:Boolean=false; // can be set in test.mxml
>       private var validator;
>       
>       function customValidate( validator, value )
>       {
>               
>               if(!lookup) //synchronous validation
>               {
>                       if(value != "test")
>                       {
>                               validator.validationError( 
> null, "need to enter the word 'test'", null );
>                       }
>               }
>               else //asynchronous validation
>               {
>                       // save the refernce to validator to be used 
> in result handler
>                       this.validator = validator;
> 
>                       // do db lookup
>                       var remote1 = 
> mx.core.Application.application.remote1;
>                       var sql:String = "select DESCRIPTION from 
> PRODUCT where CODE='" + value + "'";
> 
>                       var call = remote1.GetDescription(sql);
>                       call.onResult = mx.utils.Delegate.create
> (this, returnDBLookup);
>               }
>       }
> 
>       function returnDBLookup(result)
>       {
>               // if nothing returned show red box
>               if(result.length <= 0)
>               {
>                       this.validator.validationError( 
> null, "you've enterd an invalid code", null );
>                       mx.core.Application.application.text1.text 
> = "DB LOOKUP ERROR";
>               }
>               else
>               {
>                       mx.core.Application.application.text1.text = 
> result.getItemAt(0).DESCRIPTION;
>               }
>       }
> 
>       ]]>
> </mx:Script>
> 
> </mx:TextInput>




 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to