Developer Guide Menu

Events

You can subscribe to Flex Microform events and obtain them through event listeners. Using these events, you can easily enable your checkout user interface to respond to any state changes as soon as they happen.
Event Name
Emitted When
enabled
Field is enabled.
disabled
Field is disabled.
focus
Field gains focus.
blur
Field loses focus.
empty
Field transitions from having data to being empty.
notEmpty
Field transitions from being empty to having data.
cardTypeChange
Possible change of card type has been detected.
validationChange
Validity of the entered card number has changed.
inputSubmitRequest
Customer requests submission of the field by pressing the
Return key or similar.
tokenizeLoadStart
tokenize
 request is triggered.
autocomplete
Customer fills the credit card number using a browser or
third-party extension. This event provides a hook onto the
additional information provided during the 
autocomplete
 event.
autocompleteChange
Customer edits the credit card field after they filled it in with
a previous 
autocomplete
 action.

NOTE

cardTypeChange
 and 
validationChange
 only trigger if the card detection feature is enabled. See  Card Detection.

Subscribing

Using the 
.on()
 method provided in the 
microformInstance
 object, you can easily subscribe to any of the supported events.
For example, you could listen for the 
cardTypeChange
 event and in turn display appropriate card art and display brand-specific information.
             
var secCodeLbl = document.querySelector('label[for="secCode"]'); FLEX.microform(options, function (err, microformInstance) { // Respond to changes in the detected card type by updating the // security code label to that of the detected card type microformInstance.on('cardTypeChange', function (data) { secCodeLbl.innerHTML = (data && data.card) ? data.card.code.name : 'CVN'; }); });
The 
data
 object supplied to the event listener’s callback includes any information specific to the triggered event.

Card Detection

By default, Microform attempts to detect the card type as it is entered. Detection info is bubbled outwards in the 
cardTypeChange
 event. You can use this information to build a dynamic user experience, providing feedback to the user as they type their card number.
             
{ "card": [ { "name": "mastercard", "brandedName": "MasterCard", "cybsCardType": "002", "spaces": [ 4, 8, 12], "lengths": [16], "code": { "name": "CVC", "length": 3 }, "luhn": true, "valid": false, "couldBeValid": true }, /* other identified card types */ ] }
If Flex Microform is unable to determine a single card type, you can use this information to prompt the customer to choose from a possible range of values.

NOTE

If 
cardType
 is specified in the 
microformInstance.createToken(...)
 method, the specified value 
always
 takes precedence over the detected value.

NOTE

You can opt out of the card detection feature by specifying 
cardDetection: false
 in the initial set-up call.

Autocomplete

By default, Flex Microform supports the 
autocomplete/autofill
 event of the 
cardnumber
 field provided by certain browsers and third-party extensions. An 
autocomplete
 event is provided to allow easy access to the data that was provided to allow integration with other elements in your checkout process.
The format of the data provided in the event might be as follows:
             
{ name: '_____', code: '_____', cardExpirationMonth: '__', cardExpirationYear: '____' }
These properties are in the object only if they contain a value; otherwise, they are undefined. Check for the properties before using the event. The following example displays how to use this event to update other fields in your checkout process:
             
microformInstance.on('autocomplete', function(data) { if (data.name) document.querySelector('#myName').value = data.name; if (data.code) document.querySelector('#myCvn').value = data.code; if (data.cardExpirationMonth) document.querySelector('#myMonth').value = data.cardExpirationMonth; if (data.cardExpirationYear) document.querySelector('#myYear').value = data.cardExpirationYear; });

NOTE

You can opt out of auto complete support by specifying 
autocomplete: false
 in the initial set-up call.
Top