在呈现p:outputLabel时执行JavaScript方法

在呈现p:outputLabel时执行JavaScript方法,javascript,jsf,primefaces,Javascript,Jsf,Primefaces,当验证像这样失败时,我正在呈现一个 <p:outputLabel value="Validation Failed" styleClass="validation-error" rendered="#{facesContext.validationFailed}" onfocus="myMethod();"/> 当呈现此标签时,我想执行一个JavaScript函数,即myMethod()

当验证像这样失败时,我正在呈现一个

<p:outputLabel value="Validation Failed"
               styleClass="validation-error"
               rendered="#{facesContext.validationFailed}" 
               onfocus="myMethod();"/>


当呈现此标签时,我想执行一个JavaScript函数,即
myMethod()
。我还使用了
onfocus
属性,但它不起作用。

忽略潜在的设计问题(也许您真的需要一个?),只需在组件中嵌套一个
(或
)即可实现这一点

<p:outputLabel ...><script>myFunction()</script></p:outputLabel>
myFunction()

我只是将“myMethod”重命名为符合JavaScript术语的“myFunction”。

谢谢@BlausC这解决了我的问题。你能解释一下为什么onfocus属性不起作用吗?不客气。它只有在元素获得焦点时才起作用。当元素被简单地添加到DOM中时,它不会自动获得焦点。最终用户必须手动对其进行聚焦(或者您必须运行一些JavaScript来触发聚焦事件,但这毫无意义,因为您可以立即调用该函数)。