Формы и поля
API позволяет взаимодействовать с формами на странице.
API работает только с новыми формами
Отличить «новые» от «старых» просто — если поле формы можно перетащить за ее пределы, это новая форма, и API с ней будет работать правильно.
before-submit
Изменение полей в Любые изменения в списке полей можно внести прямо перед отправкой формы. Для этого есть событие before-submit класса Form.
Это событие срабатывает после того, как посетитель нажал кнопку «Отправить», но до момента, когда данные формы отправляются на сервер.
При этом реальные поля на странице не будут изменены. То есть изменения полей в событии не затрагивает отображение формы на странице.
Добавление
Допустим, мы хотим добавить к определенной форме с ID my-form
3 поля:
- Ширина окна посетителя
- Время, которое посетитель провел на сайте
- User Agent браузера
Удаление
В том же событии before-submit
можно удалять поля.
Допустим, у нас есть поле с названием «Результат», которое является полем-калькулятором, и значение которого нам не нужно в заявке.
Мы находим это поле в списке функцией, и удаляем функцией splice
.
event.fields
— это обычный массив, при работе с которым можно использовать любые функции массивов.
Изменение
Похожим образом мы можем изменить значение поля. Сначала мы находим в списке полей нужный объект, затем меняем его.
Абстрактный пример — замена «+7» в номерах телефонов на «8»:
TODO: before-form-submit
Изменение значений полей прямо на странице
Возможно менять значения полей прямо на странице.
TODO: Field.setValue
Пересчет калькулятора
TODO: Form.recalculate
Все свойства, методы и события форм и полей смотрите в описании классов Form и Field.