如何使用 javascript 单击 p:commandButton

How to click on a p:commandButton using javascript

我的 JSF 中有很多标签 page.I 想要在其中一个表单中使用 javascript 单击 p:commandButton。但它不起作用。我用chrome调试的时候,提示The p:commandButton cannot be found,也就是说$("#templetFile\:editButton")为null,为什么?

有我的代码:

<h:form id="templetFile" style="height:100%">
<input type="button" value = "click me" onclick="testOnclick();"/>
<p:commandButton id="editButton" value="ceshi" styleClass="button"
 action="#{advancedQueryManager.editModAndClass()}" onclick="getValddd()"
 style="display:none">
 <p:ajax event="dialogReturn" update="templFile"
 listener="#{advancedQueryManager.onreturn()}" />
</p:commandButton>
  <script type="text/javascript" >
   function testOnclick() {
    var a =$("#templetFile\:editButton");
    a.click();
   }
   function getValddd(){
    alert("Allready onclick!");
   }
  </script>
  </h:form>

如果我使用这个 js 代码 var b = document.getElementById('editButton'); 我仍然无法获得 p:commandButton element.Why?如何使用 javascript 获得 p:commandButton?

可能是 jsf 为按钮创建了一个新 ID,因此 document.getElementById('editButton') 不起作用。为了解决这个问题,你可以添加任意样式 class 到按钮 like;

styleClass="button myButtonToClick"和javascript应该是这样的;

var x =document.getElementsByClassName("myButtonToClick");
x[0].click();