【问题标题】:Dynamic form validation issues动态表单验证问题
【发布时间】: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


    【解决方案1】:

    与其从表单中删除元素,为什么不将它们隐藏在“汇总部分”中?将表单的各个部分包裹在 div(或字段集)中,然后使用 Element.hide/Element.show(甚至是 scriptaculous 中的 rollup/rolldown 动画)。您可以使用 dom:loaded 事件处理程序中的 Element.hide 来预设表单,其中一些使用较少的部分已经隐藏。重要的一点是不要禁用表单字段(或删除它们),然后验证器应该看到整个表单并正常工作。

    这是我在一个相当复杂的网络应用程序中使用的一种技术(使用我自己的生成器/填充器/验证器/提交器库),它降低了代码复杂性,因为所有表单都在那里,并且用户找到了汇总/rolldown 想法很容易掌握。它甚至可以在 iPhone 和 Android 上运行!

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 2014-08-16
      • 1970-01-01
      • 2011-07-17
      • 2013-04-13
      • 2015-10-09
      • 2015-12-09
      • 2017-08-29
      相关资源
      最近更新 更多