1

我需要在我的页面上创建一个表单,该表单将接受来自最终用户的值,验证输入(基本的东西,没什么花哨的,检查是否填写了必填字段等)以及验证码以消除垃圾邮件机器人。

目前,我为我的表单设置了一个独立的reCaptcha组件。它自己工作得很好。我正在考虑将它与 CQ5 提供的任何开箱即用的表单组件一起添加(地址组件引起了我的幻想)。

问题出现在验证中。当我单击提交时,地址组件的验证似乎永远不会执行。这引出了我的问题。

i) 是否允许我继续使用我当前的方法(即 1 个主表单组件,其中包含一个reCaptcha组件和一个地址组件)?如果可以的话,我如何才能准确地映射验证以使整个表单在我点击提交时表现得如我所愿。(我需要地址表格来检查必填字段,reCaptcha来检查挑战字段是否有效,按顺序

ii) 如果我不能以这种方式执行任务,我是否必须为我的表单创建一个全新的组件,其中包含地址组件和reCaptcha组件的代码,并将它们的验证都包含在一个文件中?从逻辑上讲,我可以看到这种方法的优点,它似乎更容易。但我想将reCaptcha组件作为一个独立的组件来维护,以实现整个站点的可重用性。

关于如何在单个页面上处理多个表单确实存在类似的主题,但由于它涉及 Ruby,我对它的了解几乎为零,因此我无法真正实现。

如果我能获得一些关于如何在 CQ5 的上下文中实现这一点的信息,我将不胜感激。

谢谢(很长的文字墙道歉)

4

1 回答 1

0

在修改了我的表格一段时间后,我终于能够让它工作了!

所以,是的,确实可以在一个表单中包含多个表单组件。通过查看如何单独管理任何 OOTB 表单字段组件的验证,可以解决验证问题。

澄清一下,OOTB Captcha 组件使用Layout.printError()方法来显示任何验证问题。我将它重新设计成我的 Recaptcha 组件,并对 servervalidation.jsp 进行了必要的更改。工作得很好!

关于问题的第二点,我建议不要走那条路,因为我觉得如果我的组件是独立的总是更好。

于 2013-06-04T12:54:04.707 回答