Code Monkey home page Code Monkey logo

alfamotors-test-angular's Introduction

Тестовое задание

Необходимо реализовать валидатор форм.

  • Все возможные проверки должны производиться локально.
  • Форма должна отправляться только если все поля прошли локальные проверки.
  • При первом вводе в поле не должны выводиться ошибки валидации. После потери фокуса и при дальнейшем редактировании около поля необходимо выводить все ошибки.
  • Локализировать все возникающие ошибки(реализовать через фабрику или сервис).
  • После отправки формы может вернуться 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){ /*вывод сообщений об ошибках*/ }
)

alfamotors-test-angular's People

Contributors

kukkomah avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.