Card security code input Drop
Combine the moov-card-security-code-input element with the moov-form to submit sensitive user data to Moov. With the moov-card-security-code-input element, information entered by the user is captured by iframes and hidden from the customer’s website.
Using the moov-card-security-code-input with the moov-card-number-input will automatically adjust validation to meet the security code requirements for the detected card brand.
<moov-form
name="demo-form"
method="PATCH"
action="/accounts/{accountID}/cards/{cardID}"
></moov-form>
<section>
<label>CVV</label>
<moov-card-security-code-input
formname="demo-form"
name="cardCvv"
required
></moov-card-security-code-input>
</section>
Properties
Properties can be accessed through JavaScript using a reference to the moov-card-security-code-input element.
| Property | Type | Required | Description |
|---|---|---|---|
name |
String | ✓ | The name of the input. The input value is merged into the request body using this name. For example, the input name expiration.month would result in a request body of { expiration: { month: "inputValue" } }. |
formName |
String | ✓ | The name of the form to which this text input is registered. |
disabled |
Boolean | If true, this input is disabled, preventing user input. |
|
required |
Boolean | If true, this input is required for form submission. |
|
readOnly |
Boolean | If true, the input value cannot be edited by a user. |
|
size |
Number | Expected number of characters in this input. | |
inputStyle |
Object | A record of camelCased CSS variables, passed to the input element within the iframe. For developer convenience, inheritable styles such as color, font-size, and font-family are applied automatically. | |
validationMessage |
String | Read only. The human-readable message displayed to the user when this input is invalid. | |
validity |
Object | Read only. A ValidityState object. Details whether or not the input is valid and which validations (if any) are passing. |
|
willValidate |
Boolean | Read only. Returns true if this input has any attached validators. | |
onInput |
Function | Fired when the user changes the input value. No arguments. | |
onChange |
Function | Fired when the user navigates away from the input. No arguments. | |
onFocus |
Function | Fired when the user focuses the input. No arguments. | |
onBlur |
Function | Fired when the input loses focus. No arguments. | |
onInvalid |
Function | Fired when the input fails a validation check. | |
onEnterKeyPress |
Function | Fired when the user presses the enter key while focusing the input. | |
onCheckValidity |
Function | Fired after a validity check runs on the input. Passes isValid as an argument. |
|
onReportValidity |
Function | Fired after a validity report runs on the input. Passes isValid as an argument. |
How to set a property
const input = document.querySelector('moov-card-security-code-input');
input.name = 'demoInput';
const input = document.querySelector('moov-card-security-code-input');
input.inputStyle = {
fontSize: "14px",
color: "blue",
};
const input = document.querySelector('moov-card-security-code-input');
const blurCallback = (brandName) => {
// Input lost focus
};
input.onBlur = blurCallback;
const input = document.querySelector('moov-card-security-code-input');
const invalidCallback = () => {
// The input failed validation
console.error(input.validationMessage);
};
input.onInvalid = invalidCallback;
Methods
You can call the methods of moov-card-security-code-input to perform various actions.
| Method | Description | Parameters | Returns |
|---|---|---|---|
blur |
Removes focus from the input. | None | None |
click |
Imitates a user click on the input. | None | None |
focus |
Focuses the input. | None | None |
select |
Selects the input. | None | None |
setCustomValidity |
Overrides the validityMessage on the input. |
validityMessage: String |
None |
checkValidity |
Runs a validity check on the input. | None | None |
reportValidity |
Runs a validity check on the input and reports the result to the user through browser default behavior. | None | None |
How to call a method
const input = document.querySelector('moov-card-security-code-input');
input.focus();
const input = document.querySelector('moov-card-security-code-input');
input.checkValidity();
// Use onCheckValidity for the result
Best practices
If you're using the moov-security-code-input Drop along with the moov-card-number-input Drop, update your label and character limit on the security code input by listening for changes to the detected brand.
const cardNumberInput = document.querySelector('moov-card-number-input');
const cvvInput = document.querySelector('moov-card-security-code-input');
const cvvLabel = document.getElementById('cvv-label'); // Selector for your label element
cardNumberInput.onBrandChange = ((brand) => {
if (brand) {
let size = 3;
let label = "CVV";
switch (brand) {
case "mastercard":
size = 3;
label = "CVC";
break;
case "discover":
size = 3;
label = "CID";
break;
case "american-express":
size = 4;
label = "CID";
break;
default:
size = 3;
label = "CVV";
}
cvvInput.size = size;
cvvLabel.innerText = label;
}
});