背景:
我是 JS 和 Prototype 的新手,所以请耐心等待。
我有一个非常大的表格。完整的表格目前重 233K。大约 400 个带有标记、样式和一些自定义 JS 的表单项。它使用带有 Jotform“增强”的 Prototype,未压缩时的重量为 370K。对于略读这个的人来说,这是 600K。
600K。我把它称为 ProJo 只是为了减轻与它相关的东西的重量。
它的目的是在手机和潜在的平板电脑上使用,所以我决定,无论好坏,由于某些部分只是偶尔需要,我会删除它们并根据需要动态添加它们。这部分工作完美(有轻微的隐藏/显示故障,我认为这与以他们不打算使用的方式使用现有动画有关,但现在不是重点)。
不再起作用的是表单验证。似乎每个表单和 CSS 元素在页面加载时都被“收集”,并且动态添加的任何内容都不会包含在集合中。
我通过搜索看到这是一种普遍现象,不幸的是,没有一个解决方案适用于 ProJo,或者它们可能的地方,都没有给我足够的咬合力。这个解决方案与我来的一样接近,但我不明白如何应用它,即使它是我问题的正确答案。据我了解,它适用于您希望从调用它的那一刻起应用于所有元素的特定功能。挑战是我不知道要调用什么函数。
表单使用 JotForm.init(); 进行初始化。有没有办法重新初始化?这是 Prototype 会做的事情,还是会在 Jotform 增强功能中存在(如果存在)?如果没有,是否有可能,如果可以,我将如何去做?
昨天我花了几个小时使用 chrome 调试器对 ProJo 中调用的函数进行了一堆跟踪,并在 ProJo 脚本和 DOM 事件上添加了断点,但由于我认识到我对语言、ProJo 和调试的经验不足像这样,我想不通。
这是相关jotform.js的链接。
如果您需要更多代码,请告诉我......我已经接近了一个点,我认为在 jQuery 中重新实现验证和动画可能会更容易。公平地说,我从来没有使用过 jQuery……只在网上阅读了 jQuery 和 Prototype 之间的比较,但是丰富的示例、指南、用户群和准备运行的插件是一个巨大的吸引力。JotForm 是一种快速构建外观漂亮且功能强大的表单的好方法,但我想我的需要更进一步。值得称赞的是,据我所见,如果不是全部的话,大多数样式都是在 CSS 中完成的,他们只修改类值以更改表单的外观以进行验证。
总结一下:原型/JotForm (ProJo) “增强”表单,其中动态表单元素不验证。有没有办法重新初始化 ProJo 或调用某些函数来执行或仅调用所需的函数(我不知道这些函数)?有谁认为/知道是否值得在 jQuery 中重做?
还有一个问题,顺便说一句:我的方法有缺陷吗?有没有其他人为移动解决方案实施过这么大的表格?你的经历是什么?
谢谢