Справочная информация:
Я новичок в JS и Prototype, так что терпите меня.
У меня очень большая форма. Полная форма в настоящее время весит 233K. Примерно 400 элементов формы с разметкой, стилем и некоторыми пользовательскими JS. Он использует Prototype с «улучшениями» Jotform, которые весят 370K без сжатия. Это 600 КБ для любого, кто скиммирует это.
600K. И я привык называть его ProJo только для того, чтобы уменьшить вес чего-то, связанного с ним.
Он предназначен для использования в полевых условиях на мобильных телефонах и, возможно, на планшетах, поэтому я решил, что к лучшему или к худшему, так как некоторые разделы нужны только изредка, я бы вырезал их и добавлял их динамически по мере необходимости. Эта часть работает безупречно (с небольшими сбоями скрытия / показа, которые, как я полагаю, связаны с использованием существующих анимаций способом, для которого они не предназначены, но сейчас это не главное).
Что больше не работает, так это проверка формы. Похоже, что каждая форма и элемент CSS «собираются» при загрузке страницы, и все, что добавляется динамически, не включается в коллекцию.
Я видел в своих поисках, что это довольно распространенное явление, и, к сожалению, ни одно из решений не применимо к ProJo, или, где они могут, не дает мне достаточно места, чтобы кусаться. Это решение настолько близко, насколько я понял, но я не понимаю, как его применить, даже если это правильный ответ на мою проблему. Из того, что я понимаю, это относится к конкретным функциям, которые вы хотите применить ко всем элементам с момента их вызова. Проблема в том, что я не знаю, какую функцию вызывать.
Форма инициализируется с помощью JotForm.init () ;. Есть ли способ повторно инициировать? Это то, что Prototype будет делать, или это будет что-то, что существует, если оно существует, в расширениях Jotform? Если нет, то возможно ли это, и если да, то как мне это сделать?
Вчера я провел пару часов, выполняя кучу трассировок для функций, вызываемых в ProJo, используя отладчик chrome и добавляя точки останова как для сценария ProJo, так и для событий DOM, но из-за того, что я узнал, моя неопытность в языке ProJo, и делать отладку таким образом, я не мог понять это.
Вот ссылка на рассматриваемый jotform.js .
Если вам нужно больше кода, дайте мне знать ... Я близок к тому моменту, когда думаю, что может быть проще просто повторно реализовать валидацию и анимацию в jQuery. Честно говоря, я никогда не использовал jQuery ... только для чтения сравнений между jQuery и Prototype онлайн, но множество примеров, руководств, базы пользователей и готовых к запуску плагинов - огромная ничья. JotForm - это отличный способ быстро создать красивую форму с отличной функциональностью, но я думаю, что мои потребности идут немного дальше. К их чести, из того, что я видел, большинство, если не все, стилей сделано в CSS, и они только изменяют значения классов, чтобы изменить внешний вид формы в целях проверки.
Итак, подведем итоги:
Prototype / JotForm (ProJo) «расширенная» форма, где элементы динамической формы не проверяются.
Есть ли способ повторно запустить ProJo или вызвать какую-либо функцию, которая выполняет или вызывает только те функции, которые требуются (которые мне неизвестны)?
Кто-нибудь думает / знает, стоит ли переделывать в jQuery?
Еще один вопрос, в стороне: моя методология ошибочна? Кто-нибудь еще реализовал такую большую форму для мобильных решений? Каким был ваш опыт?
Спасибо