Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 23.11.2017, 10:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Loki
рони,
Нет, таким образом не работает,
чудеса!
Ответить с цитированием
  #52 (permalink)  
Старый 06.10.2018, 21:31
Новичок на форуме
Отправить личное сообщение для timlsf Посмотреть профиль Найти все сообщения от timlsf
 
Регистрация: 06.10.2018
Сообщений: 2

Добрый вечер, Рони!

Давно пользуюсь вариантом из поста #5 )) отличный вариант, я считаю, можно выделять весь номер и переписывать. Но не суть.

На сайте после загрузки страницы в поле номера подставляются данные из онлайн-консультанта.
В самой программе консультанта все номера меняются на формат без скобок и пробелов +79999999999, соответственно подставляются в таком же виде. Маска применяется только при фокусе на инпут.

Перебрал все эвентлистенерс, но ничего не помогло, подскажите как решить вопрос?)
Ответить с цитированием
  #53 (permalink)  
Старый 06.10.2018, 21:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

timlsf,
не особо понял, в чём у вас проблема.
если программа меняет значение инпута, то вызовите фокус на инпуте после этой программы, либо по таймеру.
Ответить с цитированием
  #54 (permalink)  
Старый 06.10.2018, 23:06
Новичок на форуме
Отправить личное сообщение для timlsf Посмотреть профиль Найти все сообщения от timlsf
 
Регистрация: 06.10.2018
Сообщений: 2

Да, проблема была в том, что при загрузке страницы я видел подставленный номер в формате 79999999999, маска применялась только при нажатии.

в стороннем скрипте добавил такое, возможно это было очевидно, но может кому пригодится:
..
var event = new Event("input");
input.dispatchEvent(event);
..


Все заработало. спасибо за подсказку

Последний раз редактировалось timlsf, 06.10.2018 в 23:20.
Ответить с цитированием
  #55 (permalink)  
Старый 30.09.2019, 22:37
Интересующийся
Отправить личное сообщение для Вадим Вадимыч Посмотреть профиль Найти все сообщения от Вадим Вадимыч
 
Регистрация: 17.05.2017
Сообщений: 15

Доброго времени суток, подскажите как код можно вынести в отдельный файл js ? Который подключается <script src="/assets/components/---.js"></script>

Большое спасибо!

Последний раз редактировалось Вадим Вадимыч, 30.09.2019 в 22:39.
Ответить с цитированием
  #56 (permalink)  
Старый 30.09.2019, 22:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Вадим Вадимыч,
в чём проблема?
Ответить с цитированием
  #57 (permalink)  
Старый 30.09.2019, 22:59
Интересующийся
Отправить личное сообщение для Вадим Вадимыч Посмотреть профиль Найти все сообщения от Вадим Вадимыч
 
Регистрация: 17.05.2017
Сообщений: 15

Рони
Рони, прошу прошения разобрался, сам виноват косяк вышел!

Скрипт просто бомба, маленький не то что всем известный плагин. Спасибо вам за вклад в развитие общего дела!

Последний раз редактировалось Вадим Вадимыч, 30.09.2019 в 23:01.
Ответить с цитированием
  #58 (permalink)  
Старый 03.12.2019, 13:46
Новичок на форуме
Отправить личное сообщение для seroja Посмотреть профиль Найти все сообщения от seroja
 
Регистрация: 03.12.2019
Сообщений: 2

Приветствую!
Хелп, нужно чтобы при вводе телефона, пробел не подставлялся
<form action="" method="post">
 <input placeholder="Telefono" name="phone" type="tel" class="wv_phone" required id="phone1">
    <button>go</button>
    </form>
    <script>
window.addEventListener("DOMContentLoaded", function() {
    [].forEach.call( document.querySelectorAll('.wv_phone'), function(input) {
    var keyCode;
    function mask(event) {
        event.keyCode && (keyCode = event.keyCode);
        var pos = this.selectionStart;
        if (pos < 3) event.preventDefault();
       var matrix = "+39 __________",
            i = 0,
            def = matrix.replace(/\D/g, ""),
            val = this.value.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{0," + 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 < 5)  this.value = ""
    }

    input.addEventListener("input", mask, false);
    input.addEventListener("focus", mask, false);
    input.addEventListener("blur", mask, false);
    input.addEventListener("keydown", mask, false)

  });

});
  </script>

Убираю пробел в строке
var matrix = "+39__________",

скрипт перестает работать, не дает ничего ввести...
Ответить с цитированием
  #59 (permalink)  
Старый 03.12.2019, 14:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

seroja,
строка 23, 5 заменить на 3
Ответить с цитированием
  #60 (permalink)  
Старый 03.12.2019, 14:41
Новичок на форуме
Отправить личное сообщение для seroja Посмотреть профиль Найти все сообщения от seroja
 
Регистрация: 03.12.2019
Сообщений: 2

Сообщение от рони Посмотреть сообщение
seroja,
строка 23, 5 заменить на 3
Спасибо тебе добрый человек!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать скролл без возврата? Александр141 Элементы интерфейса 3 24.08.2015 15:40
как сделать tooltip без jQuery CrossFire Элементы интерфейса 2 18.11.2013 02:29
Как сделать проверку input 5-7 символов lamer Общие вопросы Javascript 5 18.06.2012 22:10
Как сделать submit без самой кнопки submit shaltay jQuery 3 06.05.2011 15:36
Как сделать INPUT с красивым задним фоном? greatilya (X)HTML/CSS 15 26.11.2009 14:04