【问题标题】:Execute a JavaScript method, when a p:outputLabel is rendered在呈现 p:outputLabel 时执行 JavaScript 方法
【发布时间】:2015-11-05 01:44:16
【问题描述】:

当验证像这样失败时,我正在渲染<p:outputLabel>

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

当这个标签被渲染时,我想执行一个 JavaScript 函数,即myMethod()。我也使用了onfocus 属性,但它不起作用。

【问题讨论】:

    标签: javascript jsf primefaces


    【解决方案1】:

    忽略潜在的设计问题(也许您实际上需要document event listener?),您可以通过在组件中简单地嵌套&lt;script&gt;(或&lt;h:outputScript&gt;)来实现。

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

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

    【讨论】:

    • 感谢@BlausC 这解决了我的问题。你能解释一下为什么 onfocus 属性不起作用吗?
    • 不客气。它仅在元素获得焦点时起作用。当元素被简单地添加到 DOM 时,它不会自动获得焦点。最终用户必须手动聚焦它(或者你必须运行一些 JavaScript 来触发聚焦事件,但这是无稽之谈,因为你可以立即调用该函数)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多