84 lines
2.5 KiB
JavaScript
Raw Normal View History

/**
* Page auth two steps
*/
'use strict';
document.addEventListener('DOMContentLoaded', function (e) {
(function () {
let maskWrapper = document.querySelector('.numeral-mask-wrapper');
for (let pin of maskWrapper.children) {
pin.onkeyup = function (e) {
// Check if the key pressed is a number (0-9)
if (/^\d$/.test(e.key)) {
// While entering value, go to next
if (pin.nextElementSibling) {
if (this.value.length === parseInt(this.attributes['maxlength'].value)) {
pin.nextElementSibling.focus();
}
}
} else if (e.key === 'Backspace') {
// While deleting entered value, go to previous
if (pin.previousElementSibling) {
pin.previousElementSibling.focus();
}
}
};
// Prevent the default behavior for the minus key
pin.onkeypress = function (e) {
if (e.key === '-') {
e.preventDefault();
}
};
}
const twoStepsForm = document.querySelector('#twoStepsForm');
// Form validation for Add new record
if (twoStepsForm) {
const fv = FormValidation.formValidation(twoStepsForm, {
fields: {
otp: {
validators: {
notEmpty: {
message: 'Please enter otp'
}
}
}
},
plugins: {
trigger: new FormValidation.plugins.Trigger(),
bootstrap5: new FormValidation.plugins.Bootstrap5({
eleValidClass: '',
rowSelector: '.mb-6'
}),
submitButton: new FormValidation.plugins.SubmitButton(),
defaultSubmit: new FormValidation.plugins.DefaultSubmit(),
autoFocus: new FormValidation.plugins.AutoFocus()
}
});
const numeralMaskList = twoStepsForm.querySelectorAll('.numeral-mask');
const keyupHandler = function () {
let otpFlag = true,
otpVal = '';
numeralMaskList.forEach(numeralMaskEl => {
if (numeralMaskEl.value === '') {
otpFlag = false;
twoStepsForm.querySelector('[name="otp"]').value = '';
}
otpVal = otpVal + numeralMaskEl.value;
});
if (otpFlag) {
twoStepsForm.querySelector('[name="otp"]').value = otpVal;
}
};
numeralMaskList.forEach(numeralMaskEle => {
numeralMaskEle.addEventListener('keyup', keyupHandler);
});
}
})();
});