在PrimeFaces中更新某些组件时自动调用javascript

Ton*_*ony 1 javascript jsf primefaces jsf-2

Primefaces 5

我有以下示例:

<script>

function init () { 
  $("#myspan").doSomething;
}
</script>

<h:form rendered="some condition">
  <span id="myspan" />

</h:form>
Run Code Online (Sandbox Code Playgroud)

如何在每次表单更新时自动调用init()?

Ali*_*ito 5

要重新运行脚本,只需重新渲染调用它的标签。假设表单在“更新”时重新呈现,这将执行以下操作:

<script>

function init () { 
  $("#myspan").doSomething;
}
</script>

<h:form rendered="some condition">
  <script type="text/javascript">init()</script>
  <span id="myspan" />

</h:form>
Run Code Online (Sandbox Code Playgroud)


Ton*_*ony 5

替代解决方案是使用 <p:remoteCommand autoRun='true'>

<script>

function init () { 
  $("#myspan").doSomething;
}
</script>

<h:form rendered="some condition">

  <span id="myspan" />
  <p:remoteCommand autoRun="true" oncomplete="init();" />
</h:form>
Run Code Online (Sandbox Code Playgroud)

在Ali的解决方案中,<script>标签早先被称为解决方案<p:remoteComand>.如果已向用户显示输出,则调用remoteCommand.