[ 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