ActionScript® 3.0 Reference for the Adobe® Flash® Platform
Home  |  Show Packages and Classes List |  Packages  |  Classes  |  What's New  |  Index  |  Appendixes
mx.validators 

CreditCardValidator  - AS3 Flex

Packagemx.validators
Classpublic class CreditCardValidator
InheritanceCreditCardValidator Inheritance Validator Inheritance EventDispatcher Inheritance Object

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

The CreditCardValidator class validates that a credit card number is the correct length, has the correct prefix, and passes the Luhn mod10 algorithm for the specified card type. This validator does not check whether the credit card is an actual active credit card account.

You can specify the input to the CreditCardValidator in two ways:

  • Use the cardNumberSource and cardNumberProperty properties to specify the location of the credit card number, and the cardTypeSource and cardTypeProperty properties to specify the location of the credit card type to validate.
  • Use the source and property properties to specify a single Object. The Object should contain the following fields:
    • cardType - Specifies the type of credit card being validated.

      In MXML, use the values: "American Express", "Diners Club", "Discover", "MasterCard", or "Visa".

      In ActionScript, use the static constants CreditCardValidatorCardType.MASTER_CARD, CreditCardValidatorCardType.VISA, or CreditCardValidatorCardType.AMERICAN_EXPRESS CreditCardValidatorCardType.DISCOVER, or CreditCardValidatorCardType.DINERS_CLUB.

    • cardNumber - Specifies the number of the card being validated.

To perform the validation, it uses the following guidelines:

Length:

  1. Visa: 13 or 16 digits
  2. MasterCard: 16 digits
  3. Discover: 16 digits
  4. American Express: 15 digits
  5. Diners Club: 14 digits or 16 digits if it also functions as MasterCard
Prefix:
  1. Visa: 4
  2. MasterCard: 51 to 55
  3. Discover: 6011
  4. American Express: 34 or 37
  5. Diners Club: 300 to 305, 36 or 38, 51 to 55

MXML SyntaxexpandedHide MXML Syntax

The <mx:CreditCardValidator> tag inherits all of the tag attributes of its superclass, and adds the following tag attributes:

  <mx:CreditCardValidator
    allowedFormatChars=" -" 
    cardNumberListener="Object specified by cardNumberSource"
    cardNumberProperty="No default"
    cardNumberSource="No default"
    cardTypeListener="Object specified by cardTypeSource"
    cardTypeProperty="No default"
    cardTypeSource="No default"
    invalidCharError= "Invalid characters in your credit card number. (Enter numbers only.)"
    invalidNumberError="The credit card number is invalid." 
    noNumError="No credit card number is specified."
    noTypeError="No credit card type is specified or the type is not valid." 
    wrongLengthError="Your credit card number contains the wrong number of digits." 
    wrongTypeError="Incorrect card type is specified." 
  />
  

View the examples

More examples

Learn more

Related API Elements



Public Properties
 PropertyDefined By
  allowedFormatChars : String
The set of formatting characters allowed in the cardNumber field.
CreditCardValidator
  cardNumberListener : IValidatorListener
The component that listens for the validation result for the card number subfield.
CreditCardValidator
  cardNumberProperty : String
Name of the card number property to validate.
CreditCardValidator
  cardNumberSource : Object
Object that contains the value of the card number field.
CreditCardValidator
  cardTypeListener : IValidatorListener
The component that listens for the validation result for the card type subfield.
CreditCardValidator
  cardTypeProperty : String
Name of the card type property to validate.
CreditCardValidator
  cardTypeSource : Object
Object that contains the value of the card type field.
CreditCardValidator
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
 Inheritedenabled : Boolean
Setting this value to false will stop the validator from performing validation.
Validator
  invalidCharError : String
Error message when the cardNumber field contains invalid characters.
CreditCardValidator
  invalidNumberError : String
Error message when the credit card number is invalid.
CreditCardValidator
 Inheritedlistener : Object
Specifies the validation listener.
Validator
  noNumError : String
Error message when the cardNumber field is empty.
CreditCardValidator
  noTypeError : String
Error message when the cardType field is blank.
CreditCardValidator
 Inheritedproperty : String
A String specifying the name of the property of the source object that contains the value to validate.
Validator
 Inheritedrequired : Boolean = true
If true, specifies that a missing or empty value causes a validation error.
Validator
 InheritedrequiredFieldError : String
Error message when a value is missing and the required property is true.
Validator
 Inheritedsource : Object
Specifies the object containing the property to validate.
Validator
 Inheritedtrigger : IEventDispatcher
Specifies the component generating the event that triggers the validator.
Validator
 InheritedtriggerEvent : String
Specifies the event that triggers the validation.
Validator
  wrongLengthError : String
Error message when the cardNumber field contains the wrong number of digits for the specified credit card type.
CreditCardValidator
  wrongTypeError : String
Error message the cardType field contains an invalid credit card type.
CreditCardValidator
Protected Properties
 PropertyDefined By
 InheritedactualListeners : Array
[read-only] Contains an Array of listener objects, if any, or the source object.
Validator
 InheritedactualTrigger : IEventDispatcher
[read-only] Contains the trigger object, if any, or the source object.
Validator
 InheritedresourceManager : IResourceManager
[read-only] A reference to the object which manages all of the application's localized resources.
Validator
 InheritedsubFields : Array
An Array of Strings containing the names for the properties contained in the value Object passed to the validate() method.
Validator
Public Methods
 MethodDefined By
  
Constructor.
CreditCardValidator
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
 Inherited
Dispatches an event into the event flow.
EventDispatcher
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Called automatically by the MXML compiler when the Validator is created using an MXML tag.
Validator
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent
Performs validation and optionally notifies the listeners of the result.
Validator
 Inherited
validateAll(validators:Array):Array
[static] Invokes all the validators in the validators Array.
Validator
  
[static] Convenience method for calling a validator.
CreditCardValidator
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Protected Methods
 MethodDefined By
 Inherited
Sets up all of the listeners for the valid and invalid events dispatched from the validator.
Validator
  
[override] Override of the base class doValidation() method to validate a credit card number.
CreditCardValidator
 Inherited
Returns the Object to validate.
Validator
 Inherited
Returns a ValidationResultEvent from the Array of error results.
Validator
 Inherited
Returns true if value is not null.
Validator
 Inherited
Disconnects all of the listeners for the valid and invalid events dispatched from the validator.
Validator
 Inherited
This method is called when a Validator is constructed, and again whenever the ResourceManager dispatches a "change" Event to indicate that the localized resources have changed in some way.
Validator
Events
 Event Summary Defined By
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.EventDispatcher
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.EventDispatcher
 InheritedDispatched when validation fails.Validator
 InheritedDispatched when validation succeeds.Validator
Protected Constants
 ConstantDefined By
Property Detail

allowedFormatChars

property
allowedFormatChars:String

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

The set of formatting characters allowed in the cardNumber field.

The default value is " -" (space and dash).



Implementation
    public function get allowedFormatChars():String
    public function set allowedFormatChars(value:String):void

cardNumberListener

property 
cardNumberListener:IValidatorListener

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

The component that listens for the validation result for the card number subfield. If none is specified, use the value specified to the cardNumberSource property.



Implementation
    public function get cardNumberListener():IValidatorListener
    public function set cardNumberListener(value:IValidatorListener):void

cardNumberProperty

property 
public var cardNumberProperty:String

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Name of the card number property to validate. This attribute is optional, but if you specify the cardNumberSource property, you should also set this property.

cardNumberSource

property 
cardNumberSource:Object

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Object that contains the value of the card number field. If you specify a value for this property, you must also specify a value for the cardNumberProperty property. Do not use this property if you set the source and property properties.



Implementation
    public function get cardNumberSource():Object
    public function set cardNumberSource(value:Object):void

cardTypeListener

property 
cardTypeListener:IValidatorListener

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

The component that listens for the validation result for the card type subfield. If none is specified, then use the value specified to the cardTypeSource property.



Implementation
    public function get cardTypeListener():IValidatorListener
    public function set cardTypeListener(value:IValidatorListener):void

cardTypeProperty

property 
public var cardTypeProperty:String

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Name of the card type property to validate. This attribute is optional, but if you specify the cardTypeSource property, you should also set this property.

In MXML, valid values are:

  • "American Express"
  • "Diners Club"
  • "Discover"
  • "MasterCard"
  • "Visa"

In ActionScript, you can use the following constants to set this property:

CreditCardValidatorCardType.AMERICAN_EXPRESS, CreditCardValidatorCardType.DINERS_CLUB, CreditCardValidatorCardType.DISCOVER, CreditCardValidatorCardType.MASTER_CARD, and CreditCardValidatorCardType.VISA.

Related API Elements

cardTypeSource

property 
cardTypeSource:Object

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Object that contains the value of the card type field. If you specify a value for this property, you must also specify a value for the cardTypeProperty property. Do not use this property if you set the source and property properties.



Implementation
    public function get cardTypeSource():Object
    public function set cardTypeSource(value:Object):void

invalidCharError

property 
invalidCharError:String

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Error message when the cardNumber field contains invalid characters.

The default value is "Invalid characters in your credit card number. (Enter numbers only.)".



Implementation
    public function get invalidCharError():String
    public function set invalidCharError(value:String):void

invalidNumberError

property 
invalidNumberError:String

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Error message when the credit card number is invalid.

The default value is "The credit card number is invalid.".



Implementation
    public function get invalidNumberError():String
    public function set invalidNumberError(value:String):void

noNumError

property 
noNumError:String

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Error message when the cardNumber field is empty.

The default value is "No credit card number is specified.".



Implementation
    public function get noNumError():String
    public function set noNumError(value:String):void

noTypeError

property 
noTypeError:String

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Error message when the cardType field is blank.

The default value is "No credit card type is specified or the type is not valid.".



Implementation
    public function get noTypeError():String
    public function set noTypeError(value:String):void

wrongLengthError

property 
wrongLengthError:String

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Error message when the cardNumber field contains the wrong number of digits for the specified credit card type.

The default value is "Your credit card number contains the wrong number of digits.".



Implementation
    public function get wrongLengthError():String
    public function set wrongLengthError(value:String):void

wrongTypeError

property 
wrongTypeError:String

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Error message the cardType field contains an invalid credit card type. You should use the predefined constants for the cardType field: CreditCardValidatorCardType.MASTER_CARD, CreditCardValidatorCardType.VISA, CreditCardValidatorCardType.AMERICAN_EXPRESS, CreditCardValidatorCardType.DISCOVER, or CreditCardValidatorCardType.DINERS_CLUB.

The default value is "Incorrect card type is specified.".



Implementation
    public function get wrongTypeError():String
    public function set wrongTypeError(value:String):void
Constructor Detail

CreditCardValidator

()Constructor
public function CreditCardValidator()

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Constructor.

Method Detail

doValidation

()method
override protected function doValidation(value:Object):Array

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Override of the base class doValidation() method to validate a credit card number.

You do not call this method directly; Flex calls it as part of performing a validation. If you create a custom Validator class, you must implement this method.

Parameters

value:Object — an Object to validate.

Returns
Array — An Array of ValidationResult objects, with one ValidationResult object for each field examined by the validator.

validateCreditCard

()method 
public static function validateCreditCard(validator:CreditCardValidator, value:Object, baseField:String):Array

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Convenience method for calling a validator. Each of the standard Flex validators has a similar convenience method.

Parameters

validator:CreditCardValidator — The CreditCardValidator instance.
 
value:Object — A field to validate, which must contain the following fields:
  • cardType - Specifies the type of credit card being validated. Use the static constants CreditCardValidatorCardType.MASTER_CARD, CreditCardValidatorCardType.VISA, CreditCardValidatorCardType.AMERICAN_EXPRESS, CreditCardValidatorCardType.DISCOVER, or CreditCardValidatorCardType.DINERS_CLUB.
  • cardNumber - Specifies the number of the card being validated.
 
baseField:String — Text representation of the subfield specified in the value parameter. For example, if the value parameter specifies value.date, the baseField value is "date".

Returns
Array — An Array of ValidationResult objects, with one ValidationResult object for each field examined by the validator.

Related API Elements

CreditCardValidatorExample.mxml
<?xml version="1.0" encoding="utf-8"?>
<!-- Simple example to demonstrate the CreditCardValidator. -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark"
        xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Script>
        import mx.controls.Alert;
    </fx:Script>

    <fx:Declarations>
        <!-- Define model for the credit card data. -->
        <fx:Model id="creditcard">
            <card>
                <cardType>{cardTypeCombo.selectedItem.data}</cardType>
                <cardNumber>{cardNumberInput.text}</cardNumber>
            </card>
        </fx:Model>

        <mx:CreditCardValidator id="ccV" 
                cardTypeSource="{creditcard}" cardTypeProperty="cardType"
                cardNumberSource="{creditcard}" cardNumberProperty="cardNumber"
                trigger="{myButton}" triggerEvent="click"
                cardTypeListener="{cardTypeCombo}"
                cardNumberListener="{cardNumberInput}"
                valid="Alert.show('Validation Succeeded!');"/>
    </fx:Declarations>

    <s:Panel title="CreditCardValidator Example"
            width="75%" height="75%"
            horizontalCenter="0" verticalCenter="0">
        <mx:Form id="creditCardForm" left="10" right="10" top="10" bottom="10">
            <mx:FormItem label="Card Type">
                <mx:ComboBox id="cardTypeCombo">
                    <mx:dataProvider>
                        <fx:Object label="American Express" data="American Express"/>
                        <fx:Object label="Diners Club" data="Diners Club"/>
                        <fx:Object label="Discover" data="Discover"/>
                        <fx:Object label="MasterCard" data="MasterCard"/>
                        <fx:Object label="Visa" data="Visa"/>
                    </mx:dataProvider>
                </mx:ComboBox>
            </mx:FormItem>
            <mx:FormItem label="Credit Card Number">
                <s:TextInput id="cardNumberInput"/>
            </mx:FormItem>
            <mx:FormItem>
                <s:Button id="myButton" label="Check Credit"/>
            </mx:FormItem>
        </mx:Form>
    </s:Panel>

</s:Application>