2

我有一个复合组件,其中包含一些输入字段 ID 的参数,例如:

<cc:attribute
    name="addressFieldId"
    required="true" />

我想使用这样的组件:

<amn:singleLocationMap
    id="singleLocationMap"
    addressFieldId="address" .../>
<!-- some code, different ui:define regions -->
<h:inputText
    value=""
    id="address" />

但是当我在 JavaScript () 中访问 ID 时,显然var address = '#{cc.attrs.addressFieldId}';我只得到了 id 参数。address但我想访问 JSF 客户端 ID,例如formId:address.

有什么方法可以在 JavaScript 中获取 JSF 客户端 ID,或者将 JSF 客户端 ID 传递给复合组件的最佳方法是什么?

4

1 回答 1

2

用于binding将组件绑定到UIComponent视图范围内的变量,以便您可以使用UIComponent#getClientId()它来打印其实际客户端 ID。

<h:inputText binding="#{addressInput}" ... />

...

<h:outputScript>
    var addressInput = document.getElementById('#{addressInput.clientId}');
    // ...
</h:outputScript>
于 2013-04-03T15:43:18.603 回答