Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2018, 12:29
Интересующийся
Отправить личное сообщение для martinways Посмотреть профиль Найти все сообщения от martinways
 
Регистрация: 22.06.2014
Сообщений: 10

Скрипт маски поля номер мобильного с заточкой по укр операторов
Требуется изменить имеющийся скрипт маски номера мобильного. Стандартные плагины и решения, которые наше в сети не подходят мне, так как не имеют функции проверки введенного на соответствие кодам операторов. Это скрипт я выдрал из одного из попавшихся интернет-магазинов, очистил от лишнего, но так как в JS не шарю требуется помощь специалиста в его изменении под мои требования, просто он заточен под верстку того сайта, в которого я его выпилил. Работу скрипта можно проверить по ссылке evocine.com
Что нужно изменить:

- сейчас маска появляется при наведении, а надо чтобы при клике по полю;

- там есть проверка на соответствие введенного форматам операторов Украины, при пустом поле или не полном введении или же при несоответствии формату кнопка КУПИТЬ деактивируется и при соответствии активируется, а мне нужно убрать кнопку и привязку функций к ней, вместо этого если введенное не соответствует формату или поле не заполнено полностью, то при клике вне поля чтобы оно полностью очищалось от всего;

- сейчас скрипт находит поле по таким требованиям

f = $(".quickbuy").find("form"),
c = f.find('input[name="phone"]'),
а мне нужно, чтобы он просто находил поле с #tel, а также у меня на сайте 3 разных формы с полями телефонов #tel , #tel2 и #tel3 , можно ли сделать чтобы скрипт срабатывал на каждый из этих id.
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2018, 12:55
Аспирант
Отправить личное сообщение для mshdn Посмотреть профиль Найти все сообщения от mshdn
 
Регистрация: 22.02.2011
Сообщений: 77

Напишите на mshdn@rambler.ru для обсуждения.
Вышлите ваш скрипт, который нужно модифицировать...
Ответить с цитированием
  #3 (permalink)  
Старый 22.07.2018, 15:52
Интересующийся
Отправить личное сообщение для martinways Посмотреть профиль Найти все сообщения от martinways
 
Регистрация: 22.06.2014
Сообщений: 10

Значит первый вариант - изменить вышеуказанный скрипт (http://evocine.com) или же соорудить\модифицировать свой, в зависимости что будет дешевле сделать, требования к маске:

- маска +38( ) - - появляется по клику по полю;
- маска со всем введенным исчезает при клике вне поля если поле не заполнено или не до конца заполнено или при несоответствии с форматом операторов Украины
- курсор невозможно поставить на пустое место после пустого места, только после цифры (в приведенной мной демке так);

В самой последней части демки js кода есть строка с форматами операторов.

Жду ваших предложений! Сразу оговорюсь, что я не привык называть исполнителям цену. Ваше умение - товар, значит Вы - продавец, я - покупатель, соответственно, Вы называете цену, а я как покупатель решаю дорого это для меня или нет.
Ответить с цитированием
  #4 (permalink)  
Старый 22.07.2018, 18:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Чем не устраивают готовые плагины?
Ответить с цитированием
  #5 (permalink)  
Старый 22.07.2018, 20:31
Интересующийся
Отправить личное сообщение для martinways Посмотреть профиль Найти все сообщения от martinways
 
Регистрация: 22.06.2014
Сообщений: 10

Если имеете ввиду этот https://plugins.jquery.com/maskedinput/
то главные претензии - нет проверки по кодам укр операторов,
курсор можно поставить в любое пустое место поля, а значит можно ввести цифры с пропуском, а это лишняя возможность для ошибки пользователя.
Ответить с цитированием
  #6 (permalink)  
Старый 22.07.2018, 21:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Я имею ввиду, что их много, включая и статьи с "разбором полетов", подобных этой https://habr.com/post/162537/
Напрягите Гугл, возможно устраивающее решение и уже готовое можно найти, а уж если не найдется, тогда уже и кошелек раскрывать можно.
Ответить с цитированием
  #7 (permalink)  
Старый 01.08.2018, 08:17
Интересующийся
Отправить личное сообщение для martinways Посмотреть профиль Найти все сообщения от martinways
 
Регистрация: 22.06.2014
Сообщений: 10

Ну что, ребятки, сделает кто-нибудь эту маску? Предлагаю 2 варианта скриптов для модификации, в зависимости от того, что будет легче и дешевле сделать

1. http://evocine.com/demo1.html
Этот скрипт я вырезал из какого-то попавшегося мне магазина, мне в нем понравилось наличие проверки на соответствии введенного номера кодам укр моб операторов в последней части кода var j = /^\+38 (\(0(39|50|63|66|67|68|91|92|93|94|95|96|97|98|99| 73)\) [0-9]{3}\-[0-9]{2}\-[0-9]{2})$/g,

Если введенное не соответствует одному из шаблонов или же номер введен не полностью, то кнопка "купить в 1 клик" деактивируется и наоборот, активируется если все правильно. А мне нужно вообще удалить кнопку и связанные с ней функции, вместо этого чтобы поле самоочищалось при клике вне данного поля (снятии с него курсора) если введенный номер не соответствует шаблону операторов или же введен не полностью. Также в данном скрипте все заточено под классы того сайта, с которого я его вырезал, поэтому мне нужно переделать чтобы скрипт находил поле на моем сайте только по id=tel.

2. Второй вариант скрипта маски http://evocine.com/demo2.html - это стандартный плагин маски jquery, мне в нем не нравится то, что курсор можно поставить в любое пустое место маски, в отличие от первого скрипта, где он становится всегда после цифры, а не после пустого места, также тут нет валидации по шаблонам укр операторов. Так что если допиливать этот скрипт, то в него нужно только добавить поведение курсора как в первом скрипте и валидацию по операторам, остальные функции, которые мне нужны уже есть - это определение поля по id=tel, самоочистка поля при снятии курсора с него если поле заполнено не до конца.

Выберите какой скрипт будет проще допилить. Работа мне нужна в виде такого же html файла, в свой сайт я уже интегрирую сам, в любом случае работа маски будет видна в таком виде.

Последний раз редактировалось martinways, 01.08.2018 в 08:19.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт для клонированного (clone) поля angel__2003 jQuery 0 25.03.2013 18:46