2013-04-03 53 views
2

我有一個輸入字段ID的一些參數,如複合材料部件:如何獲得複合材料部件的子組件的客戶端ID在J​​avaScript

<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。但是我想訪問像formId:address這樣的JSF客戶端ID。

有什麼辦法可以在JavaScript中獲得JSF客戶端ID,或者什麼是將JSF客戶端ID傳遞到複合組件的最佳方式?

回答

2

使用binding將組件綁定到視圖範圍中的UIComponent變量,以便您可以使用UIComponent#getClientId()來打印其實際的客戶端ID。

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

... 

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

感謝訣竅,它的工作原理以及cc屬性也一樣。 – azendh

+0

不客氣。 – BalusC

相關問題