Менять (установить) маску в "Input" по условию
Здравствуйте! Помогите пожалуйста с установкой маски по условию. В зависимости от выбранного пункта "Select" маска либо нужна, либо не нужна. У меня если маска сработала ("00-00 000000" только цифры), то она уже не сбрасывается. Подскажите пожалуйста, как это реализовать. Заранее вас благодарю!
Мой код: <script> let select = document.querySelector('#select_vid_doc1') if (select) { let val = select.value select.addEventListener('change', function() { val = this.value console.log(val) $(document).ready(function() { var element = document.getElementById("seria1"); if (element != null) { if (val == 1) { varmaskOptions = { mask:"000000000000"}; var mask = new IMask(element, maskOptions); } if (val != 1) { var maskOptions = { mask:"*******************"}; var mask = new IMask(element, maskOptions); }} }) }) } </script> |
romzes5,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Цитата:
|
Зачем вот это внутри другой функции?
$(document).ready(function() { Что вы этим хотели сделать? |
Спасибо за ответ. В документации написано "mask.destroy()", куда бы не вставил, не работает. Можно Вас попросить поподробнее объяснить, как это сделать в моем коде.
|
Спасибо за ответ. Этот код писали ранее. Я начинаю разбираться только. Не могу Вам ответить на этот вопрос.
|
Цитата:
Цитата:
//... if(varmask) varmask.destroy(); varmask = newIMask(element, maskOptions); //... |
рони,
Причем тут все эти описки. Вот как по идеи должен был выглядеть этот кусок кода. <script> let select = document.querySelector('#select_vid_doc1') if (select) { let val = select.value select.addEventListener('change', function() { val = this.value console.log(val) $(document).ready(function() { var element = document.getElementById("seria1"); // A if (element != null) { if (val == 1) { var maskOptions = { mask:"000000000000"}; var mask = new IMask(element, maskOptions); } if (val != 1) { var maskOptions = { mask:"*******************"}; var mask = new IMask(element, maskOptions); } } // Б }) }) } </script> Вопрос на засыпку - Когда и сколько раз будут выполняться строки А-Б ? |
voraa,
ready внутри if ... странная конструкция. возможно так ... document.addEventListener("DOMContentLoaded", function() { let select = document.querySelector('#select_vid_doc1'); let element = document.getElementById("seria1"); let maskOptions = { mask: "000000000000" }; let mask; if (select && element) { select.addEventListener('change', function() { let val = this.value; if (val == 1) mask = new IMask(element, maskOptions); else if (mask) mask.destroy(); }) } }); |
рони,
На самом деле я не совсем прав. Хотя конструкция странная (мне больше показалось странным ready внутри обработчика 'change'. Это действительно странно, но как ни странно работать должно. Я не большой знаток jquery. просто сейчас внимательнее посмотрел документацию $(document).ready(fun1) не совсем тоже самое, что document.addEventListener("DOMContentLoaded", fun2) fun2 сработает только 1 раз, когда DOM построится. fun1 каждый раз, когда документ DOM построен. Т.е сначала проверяется, если DOM уже построен, то fun1 тут же выполняется, а если не построен, то назначается обработчик |
Часовой пояс GMT +3, время: 00:08. |