Наши веб-формы действительно сложны. Какое отличное решение для проверки расширяемости формы, предпочтительно, которое работает с jQuery?
Фон:
На нашем сайте есть немного Ajax, но реальный фокус заключается в опыте пользователя через 20 многостраничных форм или "волшебников". Эти формы сложны.
- Презентация: Некоторые поля - это float или int. Валидация означает разделение не десятичных символов, но мы также хотим убедиться, что если пользователь вводит
5
в поле цены, поле обновляется до5.00
. - Побочные эффекты: Некоторые поля имеют побочные эффекты при обновлении. Например, обновление цены или количества элемента необходимо обновить поле промежуточного итога.
- Элементы, управляемые Widget: Некоторые поля скрыты и имеют значения, заполненные виджетами. Например, виджет карты позволяет указать местоположение, а скрытое поле обновляется с помощью координат широты и долготы, но местоположение должно находиться в пределах определенной области.
- Группы: Некоторые поля представляют собой группы, такие как адрес/город/штат/почтовый индекс, и их следует проверять только после заполнения всех полей.
- Проверка на стороне сервера:. Проверка некоторых полей требует проверки подлинности с помощью Ajax-запросов.
- Несколько форм на странице: Иногда пользователю необходимо заполнить одну форму перед открытием диалогового окна с другой формой. Структура должна быть более универсальной, чем привязка к
onSubmit
- мы иногда отправляем несколько форм по порядку с одной страницы с помощью Ajax. (Например, мы разрешаем пользователям регистрироваться и создавать виджет одним махом, но из-за устаревших систем этот поток требует двух запросов POST.) - Настраиваемый дисплей ошибок: Иногда ошибки появляются над полями, иногда меняется стиль поля, и наши новые проекты требуют всплывающих подсказок (ala qTip) для некоторых ошибок.
- Счастье: Пользовательский опыт является ключевым, а тактильная обратная связь важна. Любое решение
- Кнопки отправки. Нажмите кнопку отправки, чтобы проверить все, а затем показать ответ, но поскольку некоторые проверки выполняются асинхронно.
В настоящее время мы используем библиотеку jQuery Validation, но наши формы, похоже, перерастают ее возможности. Я рассматривал такие вещи, как < angular/ > , Knockout и Backbone.js, но я беспокоюсь, что они слишком тяжелы или что они потребуют от нас переписать наш интерфейс.
(Это должно быть вики-сообществом.)