An open API service indexing awesome lists of open source software.

https://github.com/webpractik/double-validate

Плагин для двойной валидации (client+server). Содержит в себе унифицированный ajax+json запрос и умеет автоматически подставлять ошибки к конкретным полям.
https://github.com/webpractik/double-validate

Last synced: about 2 months ago
JSON representation

Плагин для двойной валидации (client+server). Содержит в себе унифицированный ajax+json запрос и умеет автоматически подставлять ошибки к конкретным полям.

Awesome Lists containing this project

README

          

# Jquery Double Validate
Плагин для двойной валидации (client+server). Содержит в себе унифицированный ajax+json запрос и умеет автоматически подставлять ошибки к конкретным полям.

## Установка:

```
npm install double-validate
bower install double-validate
```

## Parameters

Name | Desc | Default
------------ | ------------- | -------------
**params** | Параметры транслируемые в JqueryFormValidator. Перекрывает параметры по умолчанию. | `{scrollToTopOnError: false, borderColorOnError: false, errorMessageClass: 'error', lang: 'ru', }`
**urlHandler** | Адрес обработчика данной формы. | Берет текущий `action` из формы.
**showErrorMessage** | Показывать ли alert при неуспешной попытке послать данные на сервер | true
**errorMessage** | Текст для alert при неуспешной попытке послать данные на сервер (к примеру 5хх ответ сервера, отсутствие интернета). | "Спасибо за отправку формы! Однако что-то пошло не так и мы не смогли получить данные. Перезвоните нам или попробуйте отправить еще раз "позже."
**reportErrorToListener** | Посылать ли данные об ошибки внешнему фиксатору. Нужно для личных нужд мониторинга работы форм. | false
**urlErrorListener** | Посылать ли данные об ошибки внешнему фиксатору. Нужно для личных нужд мониторинга работы форм. | null
**classMainErrorContainer** | Класс контейнера куда будут складываться общие ошибки | 'double-validate__main-error-container'
**classMainErrorItem** | Класс элемента в который будет обернут элемент общей ошибки | 'double-validate__main-error-item'

## Callbacks
Name | Desc
------------ | -------------
**onServerValidateSuccess** | Вызывается после успешной отправки данных на сервер и получении status=true. Принимает в параметр reponse json ответ сервера.
**onServerValidateError** | Вызывается после успешной отправки данных на сервер и получении status=false. Принимает в параметр reponse json ответ сервера.
**onBlockedForm** | Вызывается при блокировке формы перед отправкой данных на сервер. Принимает в параметр Jquery выборку текущей формы.
**onUnBlockedForm** | Вызывается после разблокировки формы. Принимает в параметр Jquery выборку текущей формы.
**onErrorRequest** | Вызывается при ошибке отправки формы. Принимает параметры запроса.

## Детали
* При отправке данных включает блокировку, не позволяя задублировать запрос до получения ответа. В этот момент на форму навешивается класс `.double-validate--wait`, для возможности дать визуальный фидбек юзверю.
* При ошибке отправки запроса, или не получении в ответет корректного json, выведет примитивный alert с сообщением, которое можно заменить через параметр errorText
* Учитывает файлы при отправке формы
* Есть общие ошибки которые нет возможности логически привязать к какому либо полю, они передаются через отдельное свойство объекта ответа сервера. Они размещаются в отдельном контейнере, классами которые можно управлять через свойства.
* Есть возможность послать на внешний сервер при ошибке отправки формы для внутренней системы алертов

## Example
```html


$('#form').doubleValidate({
onServerValidateSuccess: function(response){
console.log('you request added');
},
onServerValidateError: function(response){
console.log('error');
}
});

```

## Унифицированный ответ сервера:
```json
{
"status": true
, "mainErrors": [
"Вы уже отправили заявку"
]
, "errors": {
"email": "Пользователь с таким email уже существует"
, "company": "Для регистрации в качестве оптового покупателя необходимо заполнить это поле"
[...]
}
}
```
Работает на основе [jQuery Form Validator](https://github.com/victorjonsson/jQuery-Form-Validator).
Выбран он вместо стандартного jquery.validate.js из-за большей гибкости управления из html, что проще в поддержке на ряде движков.