【发布时间】:2013-11-01 08:52:12
【问题描述】:
我们想要获取在单个页面上多次使用的 CQ5 文本框组件的输入值。我们添加了如下所示的组件:-
<cq:include path="lastname" resourcetype="demoproject/components/lastname">
<cq:include path="firstname" resourcetype="demoproject/components/firstname">
firstname 和 lastname 是扩展的 cq5 表单文本组件。
我们如何获取各个字段的值?我们曾考虑为每个组件提供唯一 ID,但由于我们使用的是默认 CQ5 组件,因此无法为 .jsp 页面中包含的每个组件设置不同的 ID。
【问题讨论】:
-
我不明白为什么每个表单字段都需要不同的组件。您可以创建一个覆盖默认文本组件的通用组件,并将其拖入 parsys 并使用编辑重命名表单元素。您可以尝试在 geomatrixx 网站中拖放表单组件。然后,您可以使用 FormsHelper Api ,参考 getValues/getValuesAsList 方法,这样您就可以获取在文本框或任何其他表单组件中输入的值。
-
您好 Sahil,感谢您的回复。实际上,我们需要从各个组件进行服务器调用。当我通过拖放方法创建它们时,我找不到添加服务器特定调用的代码。除此之外,我想用 cq5 组件添加像 onBlur() 这样的函数。我非常感谢您的帮助。谢谢
-
为什么你不能做一件事。从 text.jsp 调用编写在 servlet 中的通用方法并将该类导入 text.jsp,您可以在该方法中编写业务逻辑,然后在 dispatcher/sendredirect 的帮助下,您可以调用任何其他 servlet 或 url。类似地,对于 onblur 事件,您可以在 text.jsp 中编写一个 onblur 来生成输入标签并调用 javascript 方法,该方法将处理所有业务逻辑,因此应该创建满足您所有需求的中心方法。顺便说一句,你为什么需要 onblur?
-
当您拖放时看到 CQ 代码,您将不得不修改该代码,我建议您查看表单组件和表单 API 以了解更多详细信息。默认代码不会进行任何服务器调用,它只会执行提供的操作。 onblur 都不适用于文本组件。我们使用 onblur 对表单组件进行验证,但我们使用了 Jquery Validation 框架。
-
嗨 Nithalia,你能解决这个问题吗?
标签: aem