2012-05-10 47 views
4

有什麼方法可以用Javascript更改<p:commandButton>值?使用JavaScript更改<p:commandButton>值

我試圖在<p:commandButton>中設置一個widgetVar,但它沒有任何setValue()函數或類似的東西。由於我的XHTML存在其他特定問題,我無法將其綁定到託管bean。

回答

5

JSF生成HTML。 JavaScript適用於HTML。在編寫JavaScript代碼時,如果您已經無法確切知道HTML代碼會生成什麼,那麼不要過多關注JSF源代碼。

在您最喜歡的瀏覽器中打開JSF頁面,右鍵單擊並選擇查看源代碼。一個<p:commandButton value="foo" />的生成HTML的輸出是這樣的:

<button id="formId:buttonId" name="formId:buttonId" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" onclick="PrimeFaces.ab({formId:'formId',source:'formId:buttonId',process:'@all'});return false;" type="submit"> 
    <span class="ui-button-text">foo</span> 
</button> 

外觀,按鈕有一個<span>孩子在其中的價值。

所以,這塊JS到按鈕的值更改爲bar應該做的:

document.getElementById("formId:buttonId").firstChild.innerHTML = "bar"; 
+1

我明白了,這就是我做之前,但認爲有一種方式來處理其WidgetVar。非常感謝你的幫助。 –

+0

當然!感謝您的建議。 –