jQuery无法在Primefaces视图中执行?

时间:2019-02-05 11:14:32

标签: javascript jquery html primefaces

如果我的Primefaces视图已加载,我想执行一些jQuery代码。这是jQuery函数的代码:

<script type="text/javascript">
    jQuery(document).ready(function(){ 
        jQuery('#myButton').click();
    }) 
</script>

这是我引用的ID的隐藏按钮:

<p:commandButton id="myButton" actionListener="#{myController.myFunction()}" value="Bla bla" style="visibility: hidden;" ajax="false" />

这是Primefaces包含jQuery的方式:

<script type="text/javascript" src="/myapp/faces/javax.faces.resource/jquery/jquery.js?ln=primefaces&amp;v=6.2"></script>

已生成jQuery代码,它位于html源代码中,我可以在浏览器中看到它,但未执行click函数,未激活NetBeans断点(位于myFunction()的第一行) 。最重要的是:我在Chrome脚本控制台中也看不到任何错误或相关跟踪...

我在这里想念什么?

编辑:

如果我输入“ jQuery('myButton')”,Chrome脚本控制台会显示以下结果:

enter image description here

我还编辑了jQuery(我希望这样就可以了...),因为生成了ID,所以它只包含了我引用的ID:

<script type="text/javascript">
    jQuery(document).ready(function(){ 
        jQuery("input[id*='myButton']").each(function (i, el) {
            el.click();
        });
    }) 
</script>

谢谢。

EDIT2:

我按照Melloware的建议更改了代码,现在浏览器进入无限重载循环,并且在Chrome中看到以下错误:

enter image description here

编辑的jQuery:

<script type="text/javascript">
    jQuery(document).ready(function(){ 
        PF('myButton').jq.click();
    })
</script>

已编辑按钮html:

<p:commandButton id="hiddenButton" widgetVar="myButton" actionListener="#{myController.myFunction()}" value="Bla bla" style="visibility: hidden;" ajax="false" />

1 个答案:

答案 0 :(得分:1)

使用widgetVar以PrimeFaces方式进行操作...

<p:commandButton id="myButton" 
                 widgetVar="widgetMyButton" 
                 actionListener="#{myController.myFunction()}" 
                 value="Bla bla" style="visibility: hidden;" ajax="false" />

然后在您的JavaScript中...

<script type="text/javascript">
    jQuery(document).ready(function(){ 
        PF('widgetMyButton').jq.click();
    }) 
</script>