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