背景:
我是JS和Prototype的新手,所以请耐心等待。
我有一个非常大的形式。完整形式目前的重量为233K。大约400个表单项,带有标记,样式和一些自定义JS。它使用带有Jotform“增强功能”的Prototype,其重量为370K未压缩。对于任何人来说,这都是600K。
600K。而且我已经把它称为ProJo,只是为了减轻与它相关的东西的重量。
它意味着在移动电话和可能的平板电脑领域使用,所以我决定,无论好坏,因为有些部分只是偶尔需要,我会剪掉它们并根据需要动态添加它们。这部分工作完美无缺(带有轻微的隐藏/显示故障,我认为这与使用现有动画的方式有关,但不是现在的意思)。
不再起作用的是表单验证。在加载页面时,似乎会“收集”每个表单和CSS元素,并且动态添加的任何内容都不会包含在集合中。
我已经通过我的搜索看到这是一种普遍的现象,不幸的是,没有任何解决方案适用于ProJo,或者它们可能不会给我足够的东西。这个solution和我一样接近,但我不明白如何应用它,即使它是我的问题的正确答案。据我所知,它适用于您希望从调用它的那一刻起应用于所有元素的特定功能。挑战是我不知道要调用哪些函数。
使用JotForm.init();初始化表单。有没有办法重新初始化?这是Prototype会做的事情,还是存在于Jotform增强中的存在(如果存在)?如果没有,是否可能,如果可能,我将如何去做呢?
我昨天花了几个小时在ProJo中调用的函数使用chrome调试器并在ProJo脚本和DOM事件上添加断点,但是由于我认识到的是我对该语言的缺乏经验,ProJo,并做这样的调试,我无法弄清楚。
以下是相关jotform.js的链接。
如果您需要更多代码,请告诉我......我正在接近我认为在jQuery中重新实现验证和动画可能更容易的一点。公平地说,我从未使用过jQuery ......只能在线阅读jQuery和Prototype之间的比较,但是丰富的示例,指南,用户群和准备好运行的插件是一个巨大的吸引力。 JotForm是一种很好的方式,可以快速构建具有强大功能的漂亮外观,但我猜测我的需求会更进一步。值得赞扬的是,从我所看到的最多(如果不是全部)样式开始,CSS中的样式并且只修改类值以更改表单的外观以进行验证。
总结一下: 原型/ JotForm(ProJo)“增强”形式,其中动态表单元素不验证。 有没有办法重新启动ProJo或调用某个函数来执行或调用所需的函数(我不知道)? 有没有人想/知道是否值得在jQuery中重做?
另外还有一个问题:我的方法有缺陷吗?有没有其他人为移动解决方案实施这么大的表单?你的经历是什么?
由于
答案 0 :(得分:0)
为什么不将它们隐藏在“汇总部分”中,而不是从表单中删除元素?在div(或fieldset)中包装表单的部分然后使用Element.hide / Element.show(甚至来自scriptaculous的汇总/滚动动画)。您可以使用在dom:loaded事件处理程序中使用Element.hide隐藏的一些较少使用的部分来预设表单。重要的一点是不要禁用表单字段(或删除它们),然后验证程序应该看到整个表单并工作。
这是我在一个相当复杂的网络应用程序(使用我自己的生成器/ populator /验证器/提交者库)上使用的一种技术,它降低了代码复杂性,因为所有表单始终存在,并且用户找到了汇总/ rolldown想法很容易掌握。它甚至适用于iPhone和Android!