рони,
Да, всё работает как нужно. Огромнейшее вам спасибо!!! И удачи!!! |
рони,
я вас приветствую! Я здесь немного пошаманил со скриптом, и мне не получается только два момента. Помогите, пожалуйста, сделать так, чтобы невозможно было клавишами Delete и Backspace удалять семерку. И второй момент - когда номер уже полностью набран, то при вводе уже лишней цифры, она вводится и тут же удаляется. Спасибо вам! window.addEventListener("DOMContentLoaded", function() { function setCursorPosition(pos, elem) { elem.focus(); if (elem.setSelectionRange) elem.setSelectionRange(pos, pos); else if (elem.createTextRange) { var range = elem.createTextRange(); range.collapse(true); range.moveEnd("character", pos); range.moveStart("character", pos); range.select() } } var is_del = false; var is_back = false; function mask(event) { var curent_position = -1; if(event.type == "keyup"){ curent_position = this.selectionStart; } var matrix = "+7 (___) ___ ____", i = 0, def = matrix.replace(/\D/g, ""), val = this.value.replace(/\D/g, ""); if (def.length >= val.length) val = def; this.value = matrix.replace(/./g, function(a) { return /[_\d]/.test(a) && i <= val.length ? val.charAt(i++) : i < val.length ? a : i++ == 6 && val.length == 4 && event.keyCode !=8 && event.keyCode !='' ? ")" : "" }); is_back = is_del = false; if(event.keyCode == 8) is_back = true; else if(event.keyCode == 46) is_del = true; if (event.type == "blur") { if (this.value.length == 2) this.value = ""; } else if(curent_position != -1){ if(is_del || is_back){ setCursorPosition(curent_position, this); } } else if(event.type == "focus") setCursorPosition(this.value.length, this); }; var input = document.querySelector("#tel"); input.addEventListener("focus", mask, false); input.addEventListener("blur", mask, false); input.addEventListener("keyup", mask, false); }); <input type="text" id="tel"> |
рони,
всё равно семерка удаляется. И сейчас стало так, что удаляя одну цифру, удаляется сразу две, и при этом курсор перескакивает. |
LADYX,
убрал код |
LADYX,
теструйте <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <input value="" id="tel"> <input value="" > <input value=""> <script> window.addEventListener("DOMContentLoaded", function() { function setCursorPosition(pos, elem) { elem.focus(); if (elem.setSelectionRange) elem.setSelectionRange(pos, pos); else if (elem.createTextRange) { var range = elem.createTextRange(); range.collapse(true); range.moveEnd("character", pos); range.moveStart("character", pos); range.select() } } var len = 0; function mask(event) { var matrix = "+7 (___) ___ ____", i = 0, def = matrix.replace(/\D/g, ""), val = this.value.replace(/\D/g, ""); if (def.length >= val.length) val = def; this.value = matrix.replace(/[_\d]/g, function(a) { return i < val.length ? val.charAt(i++) : a }); i = this.value.indexOf("_"); if(val.length < len) i = this.value.lastIndexOf(val.substr(-1))+1; if (i != -1) { i < 5 && (i = 3); this.value = this.value.slice(0,i); } if (event.type == "blur") { if (this.value.length < 5) this.value = "" } else setCursorPosition(this.value.length, this); len = val.length; }; var input = document.querySelector("#tel"); input.addEventListener("input", mask, false); input.addEventListener("focus", mask, false); input.addEventListener("blur", mask, false); }); </script> </body> </html> |
Цитата:
|
рони,
Цитата:
|
Цитата:
|
Цитата:
Однако семерку можно заменить любой другой цифрой. Достаточно нажать на поле, зажать клавишу с любой цифрой (чтобы поле заполнилось), нажать home и ввести любую другую цифру. |
Цитата:
|
Часовой пояс GMT +3, время: 04:58. |