$(document).ready(function () { InitMaskInput(); }); let MaskedValidator = { renderValidation: function (domInput) { let input: any = $(domInput); ValidationIndicator.enableIndication(input); return this.validate(domInput) }, validate: function (domInput) { let input: any = $(domInput); let inputVal: any = $(input).val(); if ($.trim(inputVal) && $(input).hasClass('validate')) { if (this.MaskedKeyValidateElement(input)) { ValidationIndicator.setSuccess(input); return true; } // else { // MessageShower.showError($(input).attr('data-val-validate-error-msg')); // } } ValidationIndicator.setError(input); return false; }, MaskedKeyValidate: function (event) { let input = $(event.target); return this.MaskedKeyValidateElement(input); }, MaskedKeyValidateElement: function (input) { let inputVal: any = ($(input) as any).val().trim(); let regExp: RegExp = new RegExp($(input).attr('data-val-regexp')); if (inputVal && regExp.test(inputVal)) { return true; } return false; }, validateWhileIndication: function (input) { if ($(input).hasClass(ValidationIndicator.validateClass)) { return this.MaskedKeyValidateElement(input); } else { return this.validateWithEmpty(input) } }, validateWithEmpty: function (input) { let inputVal: any = ($(input) as any).val().trim(); let regExp: RegExp = new RegExp($(input).attr('data-val-regexp')); if (!inputVal) { return true; } if (inputVal && regExp.test(inputVal)) { return true; } return false; } }; function InitMaskInput() { const MaskedInputSelector = '.masked-input'; let inputs = $(MaskedInputSelector); $.each(inputs, InitMaskedInput); $(MaskedInputSelector).keypress(event => MaskedValidator.MaskedKeyValidate(event)); function InitMaskedInput(index, MaskedInput) { let mask: string = $(MaskedInput).attr('data-val-mask'); ($(MaskedInput) as any).inputmask(mask); } }