Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Input validation and input mask for phone field #230

Open
Dissfall opened this issue Oct 10, 2019 · 17 comments
Open

Input validation and input mask for phone field #230

Dissfall opened this issue Oct 10, 2019 · 17 comments
Labels
12 Frontend Things that just depend on the mapa frontend bug Something isn't working
Milestone

Comments

@Dissfall
Copy link
Contributor

I think it’s necessary to add input validation for the number field, because now I can get a result like this:
bug
But also I suggest to set input mask on the field. It can provide unique way of phone number representation also adds additional check of input that can help to avoid input errors.

@rizomaa rizomaa added the bug Something isn't working label Oct 10, 2019
@rizomaa
Copy link
Collaborator

rizomaa commented Oct 10, 2019

@Dissfall thanks for testing

@rizomaa rizomaa added this to the Bugs milestone Oct 10, 2019
@rizomaa rizomaa added this to To do in Can be implemented via automation Dec 15, 2019
@lavana555
Copy link
Collaborator

Добавил регулярное выражение для проверки вводимого номера
в файл validation.js
const TelRegexp =/^(?:+|\d)[\d-() ]{4,14}\d$/;

if ((p = data.telephone) != null) {
if (!TelRegexp.test(p)) {
errors.telephone = t("invalidPhone");
}
}
Добавил
"invalidPhone": "Invalid Phone",
в файл translation-en.json
"invalidPhone": "Invalid Phone",
в файл translation-de.json
"invalidPhone": "Недапушчальны Tэлефон",
в файл translation-by.json
вот что на UI
image
image
image

добавление маски на телефон пока еще не разобрался как это работает в процессе

@Dissfall
Copy link
Contributor Author

Dissfall commented Apr 1, 2020

Нашёл такой модуль для маски ввода.
Возможно, можно использовать его

@wellemut
Copy link
Collaborator

wellemut commented Apr 1, 2020

Hi,
you can do it as you want, but a validation might do it very annoying. Most of the phonecalls reconize numbers anywhere in the text and unlike the mail-field we will never automaticall use the phonenumber.

Instead, many networks are using multiple numebers or want to say at what time you need to call which number

@rizomaa rizomaa added the 12 Frontend Things that just depend on the mapa frontend label Apr 2, 2020
@rizomaa rizomaa moved this from To do to In progress in [PAUSED from the 1st of May] Mikita's internship Apr 2, 2020
@rizomaa
Copy link
Collaborator

rizomaa commented Apr 18, 2020

Нашёл такой модуль для маски ввода.
Возможно, можно использовать его

@lavana555 наогул ту без фанатызма. нам дастаткова правяраць толькі ўвод

  1. лічбаў
  2. Знакаў: (, ), + , прабела
    Астатняе забараніць. Калі гэта магчыма без заліўкі модуля парай праверак рэгулярнымі выразамі. Калі не тады прымай модуль праз нпм.

@mvit22
Copy link
Contributor

mvit22 commented Jun 2, 2020

Сделал маску, с помощью react-input-mask
Маска появляется при фокусе на данный input, и пропадает, если маска вообще не заполнена.
Так же добавил pattern, который не даст отправить форму с недовведенным номером.
Маска рассчитана только на белорусские номера в международном стандарте.
Незаполненный вариант
image
Заполненный вариант
image

@rizomaa
Copy link
Collaborator

rizomaa commented Jun 3, 2020

@VitalyMikulich
лепей жорства не прывязваць толькі да беларускіх нумароў, хаця іх будзе 95%, трэба улічыць, што могуць быць нумары іншыя.
Проста дазволь толькі тое, што абазначана #230 (comment)
Задачы складаней, яшчэ будуць.

@mvit22
Copy link
Contributor

mvit22 commented Jun 3, 2020

Сделать как в комментарии без использования библиотек будет проблематично. Нужно рассматривать много различных комбинаций клавиш (к примеру заблокировав ввод клавиши v блокируется также функция вставить ctrl+v).
Правда, есть один вариант без использования библиотек, но работает он не эстетично.
Поэтому я бы, все таки, попробовал применить эту библиотеку.

@mvit22
Copy link
Contributor

mvit22 commented Jun 9, 2020

Вот так будет с помощью react-phone-number-input.
Белорусский номер
image
Российский номер
image
Украинский номер
image
Для каждого номера автоматически выбирается маска по коду страны и области в процессе ввода.

@rizomaa
Copy link
Collaborator

rizomaa commented Jun 11, 2020

  1. Усё ж трымаемся простага рашэння.
  2. Па блакіроўцы клавіш,можна зрабіць выклчэнні на іх таксама па коду.
  3. Што значыць працуе "не эстэтычна". Можаш паказаць?

Вось што даў беглы пошук:

@rizomaa
Copy link
Collaborator

rizomaa commented Jun 11, 2020

@VitalyMikulich зы... толькі убачыў твой апошні камент, у нас людзі яшчэ звыклі наіраць намуры праз 80... як тут быць?

@mvit22
Copy link
Contributor

mvit22 commented Jun 11, 2020

Минск
image
Брест
image

@mvit22
Copy link
Contributor

mvit22 commented Jun 11, 2020

Насчет метода, который работает не эстетично. На четверть секунды появляется к примеру буква и потом исчезает, но это все равно заметно. Грубо говоря при событии mouseup символы не соответствующие регулярному выражения заменяет пустой строкой.

@rizomaa
Copy link
Collaborator

rizomaa commented Jun 11, 2020

@VitalyMikulich давай паспрабуем "неэстэтычны варыянт", бо насамрэч тут важна прстата выкарыстання, розныя лібы для мабільных карыстальнікаў могуць быць вельмі нязручны.

@mvit22
Copy link
Contributor

mvit22 commented Jun 11, 2020

Хорошо. Мне делать PR?

@rizomaa
Copy link
Collaborator

rizomaa commented Jun 11, 2020

@VitalyMikulich абавязкова)

@mvit22
Copy link
Contributor

mvit22 commented Jun 18, 2020

#367 PR

@mvit22 mvit22 moved this from In progress to Review in progress in Vital internship (start June, 1 - end July, 31) Jun 19, 2020
@mvit22 mvit22 moved this from Review in progress to Done in Vital internship (start June, 1 - end July, 31) Jun 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
12 Frontend Things that just depend on the mapa frontend bug Something isn't working
Projects
Development

No branches or pull requests

5 participants