Валідація номера телефону у формах Onepage (onepage.io) без SMS-підтвердження
8490 UAHТехнічне завдання (ТЗ)
Проєкт: Валідація номера телефону у формах Onepage (onepage.io) без SMS-підтвердження
1) Контекст і проблема
Ми використовуємо конструктор лендингів/сайтів Onepage (onepage.io). На сайті є форма збору лідів, де користувач вводить номер телефону.
Поточна проблема: форма дозволяє відправити заявку з очевидно некоректними телефонами (наприклад, 0000000000, 12, 123, або будь-якою випадковою послідовністю цифр), навіть якщо обрано код країни +49 (Німеччина). Це призводить до “сміттєвих” лідів і марної роботи менеджерів.
Саппорт Onepage пропонує SMS-верифікацію як окрему платну функцію (підписка + оплата за кожну SMS). Для нашого сценарію (перший контакт, ринок Німеччини) це надто агресивно, погіршує конверсію та створює зайве тертя.
Нам потрібне НЕ підтвердження існування номера через SMS, а коректна технічна перевірка формату номера прямо у формі (client-side validation).
2) Ціль / Результат
Реалізувати перевірку (валідацію) номера телефону у формі Onepage так, щоб:
Неможливо було відправити форму з явно некоректним номером.
Користувач бачив зрозуміле повідомлення про помилку (DE/EN, бажано DE).
У разі помилки відправка форми блокується (submit prevent).
Рішення не повинно вимагати SMS-підтвердження.
3) Середовище / Платформа
Сервіс: Onepage (onepage.io)
Реалізація очікується через:
Custom Code / вставка власного JavaScript на сторінку (глобально або на конкретній сторінці), або
HTML embed / Custom Code-блок (якщо потрібно).
Доступу до backend Onepage немає. Потрібна клієнтська (front-end) валідація.
4) Обсяг робіт
4.1. Аналіз
Перевірити, як Onepage рендерить форму (HTML структура, селектори полів, submit button, події).
Визначити стабільний спосіб “підхопитися” на подію submit:
form.addEventListener('submit', ...)абоперехоплення кліку на кнопці submit, або
інші події, які реально працюють у Onepage.
4.2. Реалізація валідації
Потрібно реалізувати 2 рівні перевірки:
Рівень 1 — базова санітизація та довжина
Поле “Телефон” має приймати лише цифри, пробіли,
+,(,),-.Перед перевіркою прибрати всі символи, крім цифр та
+(для логіки).Заборонити введення очевидного сміття:
дуже короткі номери (наприклад < 10 цифр),
номер з одних нулів (наприклад
0000000000,+49 0000000000),повторювані патерни типу
1111111111,2222222222(опційно, але бажано).
Рівень 2 — перевірка формату телефонів для Німеччини
Цільова країна — Німеччина (+49).
Валідація має працювати в одному з форматів:
+49XXXXXXXXXX...(між 10 і 15 цифр загалом за E.164)0XXXXXXXXXX...(локальний формат)
Важливо: німецькі номери можуть мати різну довжину (мобільні/стаціонарні), тому логіка має бути адекватною, не “перерізати” реальні номери.
Рекомендований підхід (переважний):
використати бібліотеку Google libphonenumber або легшу обгортку/порт, яка дозволяє:
визначати валідність номера для регіону
DE,форматувати номер у E.164,
обробляти
+49та локальні0....
Альтернативний підхід (якщо бібліотеку неможливо підключити):
використати regex + правила довжини (але це менш надійно).
мінімум: довжина (10–15 цифр) + заборона all zeros + заборона “занадто коротко”.
4.3. UX-поведінка
Якщо номер невалідний:
блокувати submit,
показувати повідомлення біля поля або попап/inline alert.
Повідомлення (мінімум німецькою):
DE: „Bitte geben Sie eine gültige Telefonnummer ein.“
EN (опціонально): “Please enter a valid phone number.”
Підсвічування поля червоною рамкою (CSS клас або inline).
При виправленні номера — помилка зникає.
4.4. Додатково (бажано)
Маска вводу або “розумне поле” з країною:
Наприклад, через intl-tel-input (якщо реально інтегрується у Onepage без конфліктів).
Автоформатування:
приводити номер до E.164 перед відправкою (якщо можливо), або хоча б зберігати “чисті цифри”.
5) Вимоги до сумісності
Має працювати в актуальних браузерах: Chrome, Safari, Firefox, Edge.
Має працювати на мобільних (iOS/Android).
Не ламати інші поля/форми/скрипти на сторінці.
6) Обмеження та ризики (важливо врахувати)
Onepage може генерувати динамічні ID/класи. Потрібні стабільні селектори або логіка пошуку елемента:
по label тексту,
по placeholder,
по типу
input[type="tel"],або за структурою блоку.
Можлива наявність кількох форм на сторінці — потрібно чітко прив’язатись до потрібної.
Скрипт має коректно працювати навіть якщо форма завантажується асинхронно (може знадобитися
MutationObserverабо повторний пошук елементів).
7) Тест-кейси (Acceptance Tests)
Валідація повинна:
✅ Пропускати:
+49 151 234567890151 23456789реалістичні DE номери (мобільні/стаціонарні), якщо вони валідні за libphonenumber.
❌ Блокувати:
012123450000000000+49 0000000000+49 1111111111(бажано)довільний набір з 5–8 цифр.
8) Очікувані артефакти (що передати замовнику)
Готовий JS-код для вставки в Onepage (з інструкцією “куди вставити”).
Якщо використовуються бібліотеки:
посилання на CDN або файл(и),
інструкція підключення (порядок, залежності).
Інструкція налаштування:
де саме у Onepage вставити код (global/page/section),
як перевірити, що працює.
Короткий документ з селекторами, які використовуються, і логікою пошуку форми/поля.
(Опціонально) Мікро-CSS для стилів помилки.
9) Критерії приймання (Definition of Done)
Робота вважається виконаною, якщо:
неможливо відправити форму з номером
0000000000або 2–5 цифрами,коректні німецькі номери проходять,
користувач бачить зрозумілу помилку,
рішення працює стабільно на desktop і mobile,
є інструкція по впровадженню в Onepage.
10) Додаткова інформація
Лідів у місяць: до ~200.
SMS-верифікацію використовувати НЕ плануємо (через конверсію та чутливість ринку Німеччини).
Мета: мінімізувати сміттєві заявки без підвищення тертя.
11) Питання до виконавця (відповісти у пропозиції)
Чи маєте досвід інтеграцій в Onepage або подібні конструктори?
Який підхід пропонуєте: libphonenumber чи regex?
Чи зможете зробити так, щоб номер нормалізувався до E.164?
Як забезпечите стабільність при зміні DOM/оновленні Onepage?
-
1 день7718 UAH1 день7718 UAH
✋ Доброго дня! Ми IT-компанія dZENcode.
Ми реалізуємо валідацію телефонів в Onepage без SMS: libphonenumber, +49 і локальний 0…, нормалізація в E.164, блокування submit і помилки DE, спираючись на досвід команди, найкращі практики та власні напрацювання.
Чи можна надати посилання на сторінку Onepage з формою?
Допустимо підключення libphonenumber або intl-tel-input через CDN?
Докладну інформацію про наші послуги та ставки ви знайдете на сайті:Freelancehunt.
Подивіться – далі обговоримо деталі роботи, пишіть, як будете готові.
…
Фінальна вартість формується тільки після уточнення обсягу та вимог.
___________________
З повагою,
Менеджер dZENcode
Наші сильні сторони:
💎 10+ років надаємо IT-послуги: Аутсорс, Аутстаф
🔥 90+ штатних спеціалістів
🚀 Проекти «з нуля» та на підтримку
⚙️ SLA та постпродакшн-супровід
✅ Договір з компанією, гарантований результат!
🔥 250+ публічних відгуків з 2015 року.
-
3 дні10 291 UAH3 дні10 291 UAH
Привіт. Зацікавлений в реалізації валідації номерів телефонів для форм на Onepage. Це важливе завдання, адже правильна валідація підвищить якість лідів та знизить навантаження на менеджерів. Мій підхід: використати бібліотеку libphonenumber для точності, адже вона добре працює з німецькими номерами. Також, реалізую основну та додаткову валідацію, щоб користувачі отримували зрозумілі повідомлення про помилки. Щодо інтеграцій в Onepage, маю досвід роботи з подібними конструкторами. Для стабільності при змінах DOM використаю підходи, які не залежать від динамічних селекторів. Оцінюю проект в 200 EUR, з термінами близько 2-3 дні з врахуванням буфера. Які у вас є питання?
-
1 день7718 UAH
265 1 день7718 UAHДоброго дня.
З подібними задачами працював у Webflow, Tilda та інших конструкторах, де немає доступу до бекенду і все вирішується через client-side логіку. У вашому випадку я б робив рішення через libphonenumber у зв’язці з власною логікою перехоплення submit, а не через простий regex. Для ринку Німеччини це дасть набагато точнішу перевірку, особливо з різною довжиною номерів.
Можу реалізувати нормалізацію до E.164 перед відправкою форми та блокування submit із коректним повідомленням німецькою. Поле буде підсвічуватись, помилка зникатиме після виправлення. Якщо потрібно, додамо легку маску або intl-tel-input без конфліктів зі скриптами Onepage.
Стабільність забезпечимо через пошук елементів за типом поля та контекстом форми, а не за динамічними ID. За потреби використаємо MutationObserver, щоб скрипт коректно “підхоплював” форму навіть при асинхронному рендері.
Підкажіть, чи на сторінці одна форма, чи кілька, і чи є можливість вставити код глобально для всього сайту? Це вплине на спосіб прив’язки.
-
1 день7461 UAH
667 5 0 1 день7461 UAHВітаю! Зацікавив Ваш проєкт по валідації телефону у формах на Onepage.
Маю досвід інтеграції кастомного JavaScript у конструктори сайтів (перехоплення submit, робота з динамічним DOM, MutationObserver, кросбраузерність).
Пропоную рішення: Валідація через libphonenumber (для Німеччини), блокування відправки при некоректному номері, повідомлення німецькою та підсвітка поля, нормалізація номера у формат E.164 (+49…), фільтрація 0000000000;
Рішення буде працювати без SMS, стабільно на desktop і mobile, без конфліктів з іншими скриптами.
Готовий швидко реалізувати та надати інструкцію по впровадженню.
-
3 дні7410 UAH
533 28 7 1 3 дні7410 UAHГотовий виконати.
Досвід роботи в Web Development більше 12+.
Приклади робіт https://koder.pp.ua/portfolio/
-
2 дні10 291 UAH
976 4 0 2 дні10 291 UAHДоброго дня!
Мене звати Дмитро, компанія King Kong Web.
Ознайомився з вашим ТЗ по Onepage. Можемо зробити клієнтську валідацію номера телефону без SMS, щоб форма не відправлялась з “сміттєвими” номерами, а користувач одразу бачив помилку.
Реалізуємо це через вставку кастомного JavaScript у Onepage: підчепимось до submit події форми, перевіримо номер у 2 рівні (базова перевірка + правила для DE/+49), при помилці заблокуємо відправку та покажемо повідомлення німецькою. Також додамо підсвічування поля і при виправленні номеру помилка буде зникати.
По підходу: оптимально використати libphonenumber (через CDN), щоб коректно валідовати німецькі номери і, за потреби, нормалізувати їх у формат E.164 перед відправкою. Якщо Onepage не дасть стабільно підключити бібліотеку — зробимо надійний fallback на правила довжини/патернів (regex + логіка проти 0000/занадто коротко).
… Після виконання передамо готовий код для вставки, коротку інструкцію куди саме додати в Onepage, які селектори використовуємо і як перевірити роботу на desktop/mobile.
Готові приступити одразу. Якщо потрібно — надішліть посилання на сторінку з формою або скрін/HTML структури, щоб швидко підібрати найстабільніший спосіб підключення.
-
5 днів7718 UAH
893 1 0 5 днів7718 UAHДоброго дня, Валерію.
Обираю libphonenumber замість regex.
Це забезпечить точну перевірку німецьких номерів (+49), нормалізацію до E.164 та блокування фейків.
Інтегрую через Custom Code, використовуючи MutationObserver для стабільності з динамічним DOM.
Користувачі побачать зрозумілі повідомлення про помилку німецькою мовою, а відправка блокуватиметься до виправлення даних.
Ви отримаєте готовий код та інструкцію, що гарантує чистоту бази без погіршення конверсії.
… Готовий надати повний код та інструкції для інтеграції в Onepage.
А ще, замість базової валідації, пропоную розширити функціонал до інтелектуальної маски введення номеру телефону (на основі intl-tel-input).
Це значно покращить UX, автоматично форматуючи номер під час введення та підсвічуючи правильний формат для Німеччини.
Також, можна додати автоматичне визначення країни за префіксом, що спростить введення для користувачів з інших країн у майбутньому.
-
5 днів7718 UAH
1309 6 1 5 днів7718 UAHПривіт,
Я можу реалізувати валідацію номерів телефонів для ваших форм Onepage. У мене є досвід роботи з валідацією на стороні клієнта за допомогою JavaScript, роботи з конструкторами форм та маніпуляцією з DOM для динамічних середовищ.
Я створю скрипт валідації, який блокує відправку недійсних німецьких номерів телефонів, таких як 0000000000, короткі номери та повторювані шаблони, валідує формати +49 та місцевий 0, використовуючи бібліотеку Google libphonenumber для точної валідації німецьких номерів, показує повідомлення про помилки німецькою мовою з червоною рамкою, нормалізує дійсні номери до формату E.164 перед відправкою та працює надійно в настільних та мобільних браузерах.
Щодо досвіду з Onepage.io, я не працював безпосередньо з Onepage.io, але маю досвід інтеграції кастомного JavaScript у платформи, такі як Webflow та Wix, де існують подібні виклики з динамічними ідентифікаторами та асинхронним завантаженням форм. Підхід подібний, використовуючи стабільні селектори, MutationObserver для асинхронного завантаження та делегування подій.
Для підходу я рекомендую використовувати libphonenumber через легку версію CDN, таку як google libphonenumber js. Це надійніше, ніж regex для німецьких номерів, які мають змінну довжину. Regex може працювати як резервний варіант, але не зловить всі крайні випадки.
…
Для нормалізації E.164 libphonenumber може нормалізувати дійсні номери до формату E.164 перед відправкою форми, що допомагає з узгодженістю даних CRM.
Для стабільності DOM я використаю кілька резервних селекторів, таких як тип вводу tel, текст підказки та текст мітки, і реалізую MutationObserver, щоб повторно прикріпити валідацію, якщо форма перезавантажується асинхронно. Я також протестую кілька форм на сторінці та націлюсь на правильну.
Я надам готовий до використання код JavaScript з посиланнями на бібліотеки CDN, інструкціями з інтеграції, документацією селекторів та необов'язковим CSS для стилізації помилок.
Термін: 1 тиждень
Вартість: 400 до 500 доларів США
Я готовий почати працювати негайно.
Юсеф
-
2 дні7718 UAH
314 2 дні7718 UAHПривіт, напишіть в лс
-
2 дні7718 UAH
96304 1273 1 10 2 дні7718 UAHВітаю.Працюю з JavaScript понад 8+ років. Готовий налаштувати валідацію інпута.Звертайтесь.
-
3 дні7718 UAH
726 9 1 3 дні7718 UAHДоброго дня! Я уважно вивчив ваш проект і готовий розпочати його реалізацію. Давайте обговоримо деталі для найкращого виконання.
-
2 дні7718 UAH
1728 22 0 2 дні7718 UAHДоброго дня. Подібні завдання робив, але не на onepage. Функція вставки свого коду доступна в платних версіях - тому щось перевірити не можу. Вийде чи ні, не скажу. Але досвід в цілому є і особисто мені потрібно розбиратися "на місці". Підходить - звертайтеся. Робив: Скрипт уніфікації мобільних номерів - є в портфоліо.
-
1 день7718 UAH
309 1 день7718 UAHПривіт, Валерій Щербаков.
Я уважніше перевірив ваші вимоги.
Я можу повністю побудувати розділ, використовуючи бібліотеку (libphonenumber або іншу) та кілька власних функцій.
У цьому випадку мені не потрібно змінювати DOM для цього.
Я додам новий розділ (для помилки) лише.
Сподіваюся укласти контракт з вами.
Дякую.
-
1 день7718 UAH
12437 600 0 1 день7718 UAHДоброго вечора. Ваше завдання мені цілком зрозуміле. Я Знаю як вирішити вашу проблему, напишу весь потрібний функціонал з потрібною валідацією. Номери будуть коректні, все як ви хочете...
Зроблю доп перевірки, ви будете дуже задоволені результатом!!!
Чекаю на вас у персональних повідомленнях.
-
1 день7718 UAH
1082 7 0 1 день7718 UAHГотова виконати прямо зараз, віддам код через годину. Досвід більше 4х років
відповіді
1) Так. Підхід, який я використовую, є універсальним для будь-яких no-code конструкторів
2) Однозначно libphonenumber-js як основний підхід.
3) Так, це можливо
4) Каскад селекторів: скрипт шукає поле не по одному ID чи класу, а по ланцюжку з 7 селекторів (тип tel, атрибути name, placeholder). Навіть якщо Onepage змінить один — спрацює інший.
… p/s напишіть в лс, вже маю готове рішення
-
1 день7718 UAH
3475 32 0 1 день7718 UAHДоброго вечора, виконаю завдання за 1 годину, якщо цікавить, пишіть буду радий співпраці
upd: вже маю готовий код, тільки інтегруватись у вашу форму, потрібне посилання
-
2 дні7718 UAH
9944 117 0 2 дні7718 UAHВітаю.
Готовий взятися. Пишіть, обговоримо.
1. Маю досвід з конструткорами.
2. Можна спробувати через regex.
3. Так.
4. Це питання потребує більш детальної відповіді.
-
Підготувала скрипт, напишіть в лс, дам посилання на інструкції ua і de
-
Актуальні фриланс-проєкти в категорії Javascript та Typescript
Шукаю досвідченого Full Stack розробника для створення SaaS-сервісу для інтернет-магазинів.Ідея сервісу: Клієнт завантажує посилання на свій товарний фід (XML або CSV). Сервіс автоматично отримує товари, бере їхні фотографії та створює нові рекламні зображення за готовими шаблонами: ціна, знижка, логотип, акційні плашки тощо. Також у сервісі має бути простий редактор… Javascript та Typescript, Веб-програмування ∙ 1 день 9 годин тому ∙ 80 ставок |
Розробка WebGL/Three.js сцени з генерацією та експортом 3D (снапшот) з анімованого шейдераОпис об'єкта:Проект являє собою дизайнерський стіл, виконаний у формі реалістичного, глибокого водовороту (центральна воронка, яка плавно переходить з широкої горизонтальної стільниці в тонку витончену ніжку). Суть задачі:Потрібен WebGL / Creative Coding розробник для створення… Javascript та Typescript, Веб-програмування ∙ 2 дні 6 годин тому ∙ 29 ставок |
Підтримка та розвиток сайту клінінгової компанії
906 UAH
Шукаю веб-розробника / вебмайстра для довгострокової підтримки та розвитку сайту клінінгової компанії. Сайт: https://donely.ca Про проєкт DoneLy Home Services — компанія з надання послуг прибирання в Канаді, яка активно розвивається та розширює географію роботи. Шукаю… Javascript та Typescript, Веб-програмування ∙ 4 дні 8 годин тому ∙ 63 ставки |
Розробка сайту по ТЗ на FramerПотрібно зробити сайт по цим параметрам що в тз https://docs.google.com/document/d/1ODO2C9Krb4AaMiJz9wfbNzWlAyA2FwCCHL8r0biajUY/edit?usp=sharing Називайте реальний рейт на основі цього дизайну HTML та CSS верстання, Javascript та Typescript ∙ 5 днів 9 годин тому ∙ 28 ставок |
Розробка інтерактивної карти Palworld для сайтуПотрібно розробити інтерактивну карту Palworld за прикладом: https://palworld.gg/map Нам потрібна не просто статична картинка, а повноцінна інтерактивна карта, де користувач може дивитися локації, вмикати / вимикати категорії об’єктів, шукати потрібні точки та взаємодіяти з… HTML та CSS верстання, Javascript та Typescript ∙ 6 днів 23 години тому ∙ 36 ставок |