You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by "Mark Kessler (JIRA)" <ji...@apache.org> on 2013/04/17 03:16:14 UTC

[jira] [Updated] (FLEX-16714) Validator. Credit Card Validator does not work properly when property 'required' is false

     [ https://issues.apache.org/jira/browse/FLEX-16714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Kessler updated FLEX-16714:
--------------------------------

    Labels: easyfix  (was: )
    
> Validator. Credit Card Validator does not work properly when property 'required' is false
> -----------------------------------------------------------------------------------------
>
>                 Key: FLEX-16714
>                 URL: https://issues.apache.org/jira/browse/FLEX-16714
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Validators
>    Affects Versions: Adobe Flex SDK 3.1 (Release)
>         Environment: Affected OS(s): Windows
> Browser: Internet Explorer 6.x
> Language Found: English
>            Reporter: Adobe JIRA
>              Labels: easyfix
>
>       Steps to reproduce:
> 1. Application code:
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
> 	<mx:Form>
> 		<mx:FormItem label="Account Number">
> 			<mx:TextInput id="ti" width="200"/>
> 		</mx:FormItem>
> 		<mx:FormItem>
> 			<mx:Button id="btn" label="Submit" click="submit(event)"/>
> 		</mx:FormItem>
> 	</mx:Form>	
> 	<mx:CreditCardValidator
> 		id="ccV"
> 		required="false"
> 		cardNumberSource="{ti}"
> 		cardNumberProperty="text"
> 		cardTypeSource="{cardType}"
> 		cardTypeProperty="type"
> 		allowedFormatChars=""
> 		invalid="_valid = false;"
> 		valid="_valid = true;"/>		
> 	
> 	<mx:Script>
> 		<![CDATA[
> 			import mx.controls.Alert;
> 			[Bindable]
> 			private var cardType:Object = {type:"American Express"};
> 			
> 			private var _valid:Boolean;
> 			private function submit(event:MouseEvent):void {
> 				ccV.validate();
> 				Alert.show(_valid.toString());
> 			}		
> 		]]
>       >
> 	</mx:Script>
> </mx:Application>
> 2. Set ccv property 'required' to false. This means that validator should consider empty input as valid.
> 3. Launch application
> 4. Do not enter any input. Click on Submit button.
> 5. See the value on the Alert box.
>  
>  Actual Results:
>  1. Alert box shows 'false'.
>           
>            The validator.as code in my sdk has a function per below:
>                  public function validate(
>                         value:Object = null,
>                         suppressEvents:Boolean = false):ValidationResultEvent
>                  {   
>                       if (value == null)
>                           value = getValueFromSource();   
>         
>         // if required flag is true and there is no value
>         // we need to generate a required field error
>         if (isRealValue(value) || required)   <<<<<<< *********** THIS SHOULD BE 'AND' INSTEAD OF 'OR' *****************
>         {
>             return processValidation(value, suppressEvents);
>         }
>         else
>         {
>             // Just return valid
>             return new ValidationResultEvent(ValidationResultEvent.VALID); 
>         }
>     }
>   Because of the existing OR condition, the logic flows to processValidation even though required is false.
>  Expected Results:
>  1. Alert box should show 'true'.  Since the ccV property 'required' is set to false, I expect the validator to not validate 'empty' textinput.
>  
>  Workaround (if any):
>     

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira