2012-12-17 61 views
2

我想在頁面加載時將焦點設置在JSF2(Mojarra)中的commandButton字段上。我如何在不使用Javascript的情況下實現這一點?任何人都可以幫助我嗎?setFocus in JSF2(Mojarra)

+0

我真的懷疑你可以做到沒有JS。在最好的情況下,你可以用這樣的標籤包裝它:https://showcase-omnifaces.rhcloud.com/showcase/components/onloadScript.xhtml – SJuan76

+0

你也可以打開一個全方位的增強問題http:// code .google.com/p/omnifaces/issues/list,要求將'highlight'組件複製+修改爲焦點元素https://showcase-omnifaces.rhcloud.com/showcase/components/highlight.xhtml :)另外,請看這個http://balusc.blogspot.co.il/2007/12/set-focus-in-jsf.html – Daniel

+0

非常感謝您的回覆 –

回答

4

我怎樣才能實現這個沒有使用Javascript?

這隻有當瀏覽器支持HTML5時纔可能。然後,您可以使用新的HTML5 autofocus屬性,讓你最終落得與

<input type="submit" value="Submit" autofocus="true" /> 

此屬性不是由JSF組件<h:commandButton>支持。向JSF組件添加任意屬性(如<h:commandButton autofocus="true">)也不是由JSF本機支持的,它將被忽略。你基本上需要創建一個支持新屬性的自定義標籤/組件。

您還可以使用自定義RenderKit編寫不支持的屬性。正是出於這個目的,JSF實用程序庫OmniFaces自1.3版本開始已有Html5RenderKit

<h:commandButton value="Submit" autofocus="true" /> 

此外,這隻適用於支持HTML5 autofocus屬性的瀏覽器。

+0

您真的很棒,非常感謝您的快速響應 –

+0

@BalusC這聽起來非常棒。它讓我想起了jsf 2.2的新的HTML5友好標記。 –

+0

@BalusC當頁面加載時,如果沒有'javascript'或'primefaces',如何在'jsf'中將自動對焦設置爲'輸入文本'? – 2015-02-23 21:56:05