Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.05.2014, 11:47
tai tai вне форума
Аспирант
Отправить личное сообщение для tai Посмотреть профиль Найти все сообщения от tai
 
Регистрация: 16.01.2013
Сообщений: 98

Добавление знаков в номер телефона
Добрый день!

Подскажите пожалуйста можно ли сделать автоматическое добавление знаков в номере телефона?

Т.е. например я ввожу номер из 10 цифр (9041112233)
и в поле должно автоматически подставиться +7(904)111-22-33
Ответить с цитированием
  #2 (permalink)  
Старый 06.05.2014, 11:50
Аватар для nice_try
Профессор
Отправить личное сообщение для nice_try Посмотреть профиль Найти все сообщения от nice_try
 
Регистрация: 11.12.2013
Сообщений: 313

есть плагин
http://digitalbush.com/projects/masked-input-plugin/
Ответить с цитированием
  #3 (permalink)  
Старый 06.05.2014, 13:12
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сработает при снятии фокуса с поля.
<!DOCTYPE HTML>
<html>
  <head>
  <meta charset="utf-8">
  </head>
  <body>
<input type="text" id="someid">
<script>
document.getElementById('someid').onchange = function() {
  if ( /^\d{3}\d{3}\d{2}\d{2}$/.exec(this.value) ) {
    this.value = this.value.replace(/(\d{3})(\d{3})(\d{2})(\d{2})/, function(str, aaa, bbb, cc, dd) {
      return '+7(' + aaa + ')' + bbb + '-' + cc + '-' + dd;
    });
  }
}
</script>
  </body>
</html>

Последний раз редактировалось jsnb, 06.05.2014 в 13:17.
Ответить с цитированием
  #4 (permalink)  
Старый 06.05.2014, 13:28
Аватар для nice_try
Профессор
Отправить личное сообщение для nice_try Посмотреть профиль Найти все сообщения от nice_try
 
Регистрация: 11.12.2013
Сообщений: 313

Сообщение от jsnb Посмотреть сообщение
Сработает при снятии фокуса с поля.
не робит что то
Ответить с цитированием
  #5 (permalink)  
Старый 06.05.2014, 13:49
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от nice_try Посмотреть сообщение
не робит что то
http://i.imgur.com/j1m85VF.gif
Ответить с цитированием
  #6 (permalink)  
Старый 06.05.2014, 16:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Вариант маски для ввода номера телефона
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
    <input oninput="proverka(this)" onfocus="setCursorPosition(3, this)" >
    <script>
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();
        }
    }

    function proverka(el) {
        var matrix = "+7(123)456-78-90",
            i = 0,
            val = el.value.replace(/\D/g, '');
            !val && (val = "7")
        matrix = matrix.replace(/\d/g, function (a) {
            return val.charAt(i++) || "_"
        })
        el.value = matrix;
        i = matrix.lastIndexOf(val.substr(-1));
        i < matrix.length && i > 2 ? i++ : (i = 3)
        setCursorPosition(i, el)
    };
   document.querySelector('input').oninput()
  </script>
</body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 06.05.2014, 16:46
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

alert("9041112233".replace(/^(\d{3})(\d{3})(\d{2})(\d{2})$/, '+7($1)$2-$3-$4'));
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 07.05.2014, 10:19
tai tai вне форума
Аспирант
Отправить личное сообщение для tai Посмотреть профиль Найти все сообщения от tai
 
Регистрация: 16.01.2013
Сообщений: 98

Спасибо!

А как это значение в value передать?
Я проверку делаю на заполненность поля и получается что в value пусто и форма соответственно не отправляется
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блокирование интерфейса. Добавление нового элемента vychmat Элементы интерфейса 5 20.03.2014 15:04
Проверка поля номера телефона iskander83 Общие вопросы Javascript 2 14.05.2013 15:22
Проверка номера телефона при помощи регулярок Amateur Javascript под браузер 3 20.10.2011 13:34
Определение номера тега. awas Internet Explorer 6 18.07.2011 17:54
Проверка поля Номер телефона zhuzha Общие вопросы Javascript 7 12.05.2010 16:40