Здравствуйте.
Написал код, который при вводе в поле маску отображает в нижнем поле пример маски.
Все работает, но если вести символ:
{ или
} вся страница зависает и выводить ошибку:
Maximum call stack size exceeded
Такой вопрос:
Как при возникновение данной ошибки остановить выполнения скрипта и вывести сообщение #js-mask-error?
<input type="text" id="js-mask" >
<input type="text" id="js-mask-demo" data-mask="999-999">
<div id="js-mask-error">Не удалось сформировать маску</div>
let options = {
clearMaskOnLostFocus:false
};
let input = (event) => {
if(demo = document.getElementById('js-mask-demo')){
let error = document.getElementById('js-mask-error');
if(error.classList.contains('active')) error.classList.remove('active');
try{
if(event.target.value.length>0){
Inputmask(event.target.value,options).mask(demo);
}else{
if(demo.inputmask) demo.inputmask.remove();
demo.placeholder = event.target.placeholder;
}
}catch(err){
error.classList.add('active');
}
}
};
let mask = document.getElementById('js-mask');
if(demo = document.getElementById('js-mask-demo')){
Inputmask(demo.getAttribute('data-mask'),options).mask(demo);
mask.oninput = input;
}