Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script>
- window.addEventListener("DOMContentLoaded", function() {
- [].forEach.call( document.querySelectorAll("input[type='tel']"), function(input) {
- var keyCode;
- function mask(event) {
- event.keyCode && (keyCode = event.keyCode);
- var pos = this.selectionStart;
- if (pos < 3) event.preventDefault();
- if (pos === 3 && event.keyCode === 56) {
- event.preventDefault();
- }
- /*
- Берем значение инпута,
- удаляем все символы кроме цифр,
- если первая цифра 8, меняем ее на 7
- */
- var val = this.value.replace(/\D/g, "");
- if (val[0] === '8') val = '' + val.slice(1);
- var matrix = "+7 (___) ___ ____",
- i = 0,
- def = matrix.replace(/\D/g, ""),
- new_value = matrix.replace(/[_\d]/g, function(a) {
- return i < val.length ? val.charAt(i++) || def.charAt(i) : a
- });
- i = new_value.indexOf("_");
- if (i != -1) {
- i < 5 && (i = 3);
- new_value = new_value.slice(0, i)
- }
- var reg = matrix.substr(0, this.value.length).replace(/_+/g,
- function(a) {
- return "\\d{1," + a.length + "}"
- }).replace(/[+()]/g, "\\$&");
- reg = new RegExp("^" + reg + "$");
- if (!reg.test(this.value) || this.value.length < 5 || keyCode > 47 && keyCode < 58) this.value = new_value;
- if (event.type == "blur" && this.value.length < 17) {
- this.value = "";
- }
- }
- input.addEventListener("input", mask, false);
- input.addEventListener("focus", mask, false);
- input.addEventListener("blur", mask, false);
- input.addEventListener("keydown", mask, false)
- });
- });
- $( document ).ready(function() {
- let fields = document.querySelectorAll("input[type='tel']");
- for (let i = 0; i < fields.length; i++) {
- fields[i].addEventListener("paste", function(e) {
- var pastedText = undefined;
- if (window.clipboardData && window.clipboardData.getData) {
- pastedText = window.clipboardData.getData('Text');
- } else {
- var clipboardData = (e.originalEvent || e).clipboardData;
- if (clipboardData && clipboardData.getData) {
- pastedText = clipboardData.getData('text/plain');
- }
- if(pastedText[0] === "8") {
- e.target.value = "+7 " + pastedText.split("").slice(1).join("")
- } else {
- e.target.value = pastedText
- }
- e.preventDefault();
- return false;
- }
- });
- }
- });
- </script>
Add Comment
Please, Sign In to add comment