【问题标题】:Fetch input value of a CQ5 Form Text Component获取 CQ5 表单文本组件的输入值
【发布时间】: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


【解决方案1】:

尼塔利亚,

如果您将通过 cq:include 包含一个组件,那么您将只能使用它的一个实例,并且永远无法动态使用它。 您必须将此文本组件的多个实例拖到 Parsys 中,然后必须单独配置每个实例。一个组件在拖入 Parsys 时独立于其他组件,因为每次拖动它时都会创建一个不同的节点。如果您将其包括在内,则只会创建一个节点,因此可以进行编辑,但只能进行一次。 如果您想做一些研究,请在 Geomartixx 站点上多次拖动文本组件并单独配置它们,然后查看将在 /content 路径下创建的节点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 2013-02-28
    相关资源
    最近更新 更多