我需要在我的页面上创建一个表单,该表单接受来自最终用户的值,验证输入(基本内容,没有任何花哨,检查是否填写必填字段等)以及验证码以消除垃圾邮件机器人。
目前,我为我的表单设置了一个独立的 reCaptcha 组件。它本身就可以正常工作。我正在考虑添加这个以及CQ5提供的任何开箱即用的表单组件(地址组件引起了我的兴趣)。
问题出现在验证上。单击“提交”时,地址组件的验证似乎永远不会执行。这引出了我的问题。
i)是否允许我继续使用我目前的方法(即1个主形式组件,其中包含一个 reCaptcha 组件和一个地址组件)?如果可以,我如何准确地映射整个表单的验证,以便在我点击提交时按照我的意愿行事。 (我需要地址表单来检查必填字段, reCaptcha 以检查质询字段是否有效,按此顺序)< / p>
ii)如果我不能以这种方式执行任务,我是否必须为我的表单创建一个全新的组件,其中包括地址组件和 reCaptcha 组件并将其验证包含在1个文件中?从逻辑上讲,我可以看到这种方法的优点,它似乎更容易。但我希望将 reCaptcha 组件作为一个独立的组件,以实现我网站的可重用性。
关于如何处理Multiple forms on a single page的确存在一个类似的主题,但由于它涉及Ruby,我接下来就不知道,我无法真正实现。
如果我能获得有关如何在CQ5环境中实现这一目标的信息,我将不胜感激。
由于 (为真正长篇文章道歉)
答案 0 :(得分:0)
在修改了我的表格一段时间之后,我终于能够让它发挥作用了!
所以,是的,确实可以在单个表单中包含多个表单组件。验证问题可以通过查看如何单独管理任何OOTB表单字段组件的验证来进行整理。
为了澄清,OOTB Captcha组件使用 Layout.printError() 方法来显示验证方面的任何问题。我将其重新编写到我的Recaptcha组件中,并对servervalidation.jsp进行了必要的更改。工作得很好!
关于问题的第二点,我建议不要走那条路,因为我认为如果我的组件是独立的,那总是更好。