@cbolota

Как лучше организовать конструирование и валидацию форм (клиент — сервер)?

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

Хочется увидеть в первую очередь примеры, а лучше ссылки на GITHUB.
Кто какие плагины использует для облечения выполнения вышеуказанных задач?
Интересно как кто организовывает процесс.
Необходимо предусмотреть способы редактирования данные форм.
Сейчас при оправки формы проверяю все поля отдельно разными функциями, можно ли как то упростить задачу или с клиентскими данными по хорошему никак?

Сейчас смотрю Alpaca JS плагин но он дико много весит как для форм
еще JSON Editor плагин но не пойму безопасно в production пускать?
  • Вопрос задан
  • 285 просмотров
Пригласить эксперта
Ответы на вопрос 1
crazy_leo
@crazy_leo
Frontend Developer
Я использую свой скрипт. Приведу пример как работает, если нравится то скину код. (1-2 кб)

var list = {
	// Страница логина
	login: {
		name: {
                       /**Обязательно ли поле**/
                       isRequired: true,
                        /**
                          Начать валидацию только тогда, когда возвращается true
                         **/
                         if: function (current, all) {
                            return  current == "admin" ? false : true
                          },
			/**
				Тип который должен быть у поля
				Все типы: String, Array, Object, Boolean, Number
			**/
			type: String
			/**
				Минимальная длина и максимальная длина.
				Работает только со строкой, массивом.
			**/
			min: 1,
			max: 10,
			/**
				Делает соответствие регулярному выражению
			**/
			search: /testuser/i,
			/**
				Функция валидатор. 
				Параметры: текущее поле в цикле и все поля переданные в validation (Это тот скрипт о котором я говорил скину)
				Возвращать: true если все хорошо, false если все плохо
			**/
			validator: function (current, all) {
				return current == "testuser" ? true : false
			},
			/**
				Сообщение которое возвращает скрипт если валидация не прошла.
			**/
			message: "Неверное имя!",
			/**
				Функция изменения message
			**/
			setMessage: function (current, all) {
				return all.type == "company" ? "Неверное название компании" : "Неверное имя!"
			}
		}
	}
}

// т.е у меня хранится этот лист.
// а функция validation импортирует его и начинает валидацию

validation({name: "Мегафон", type: "company"}, "login")
	.catch(emessage => console.log(emessage))
        .then(body => console.log(body))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы