2013-04-03 2 views
2

У меня есть составной компонент с некоторыми параметрами идентификаторов поля ввода, такие как:Как получить клиент дочернего компонента составного компонента ID в JavaScript

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

Я хотел бы использовать этот компонент, как это:

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

Но когда я получаю доступ к ID в JavaScript (var address = '#{cc.attrs.addressFieldId}';), я получаю только параметр id address, очевидно. Но я хотел бы получить доступ к ID клиента JSF, например, formId:address.

Есть ли способ получить идентификатор клиента JSF в JavaScript или что является лучшим способом передать идентификатор клиента JSF в составной компонент?

ответ

2

Используйте binding, чтобы связать компонент с переменной UIComponent в области вида, чтобы вы могли использовать UIComponent#getClientId() для печати своего фактического идентификатора клиента.

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

... 

<h:outputScript> 
    var addressInput = document.getElementById('#{addressInput.clientId}'); 
    // ... 
</h:outputScript> 
+0

Спасибо, трюк, он работает, а также атрибут cc. – azendh

+0

Добро пожаловать. – BalusC