Необходимо реализовать валидатор форм.
- Все возможные проверки должны производиться локально.
- Форма должна отправляться только если все поля прошли локальные проверки.
- При первом вводе в поле не должны выводиться ошибки валидации. После потери фокуса и при дальнейшем редактировании около поля необходимо выводить все ошибки.
- Локализировать все возникающие ошибки(реализовать через фабрику или сервис).
- После отправки формы может вернуться json со списком ошибок. В примере
сервер возвращает системую ошибку в 50% случаев или если пользователь
ввел email
[email protected]
. - Ошибки, вернувшиеся с сервера необходимо выводить около
соответствующих полей. Ошибки с ключем
common
выводить в произвольном месте.
username - имя пользователя. Должно быть не короче 6 символов.
password - пароль. Input должен иметь type='password'
, содержать
минимум 1 цифру и 1 заглавную букву.
phone - телефон. Телефон должен вводиться по маске. Допустимо использовать сторонний плагин для реализации маски.
email - email. Проверка должна реализовываться штатными средствами angular.
Для эмуляции отправки в js/utils/fetch.js
находится фабрика,
которая имитирует ответ от сервера. При наличии ошибок возвращается
объект, в котором ключами являются имена полей, а значениями - массивы
со строковыми идентификаторами ошибок, например:
{
email: ['already_in_use'],
phone: ['wrong_format, 'already_in_use'],
common: ['server_error']
}
Пример вызова:
fetch({
username: 'username',
password: 'password',
phone: 'phone',
email: 'email'
}).then(
function(success){ /*вывод успешного сообщения*/}
function(errors){ /*вывод сообщений об ошибках*/ }
)