我的JSF页面中有很多标记。我想在其中一个表单中使用javascript单击p:commandButton
。但它不起作用。当我调试它时使用chrome,它提示无法找到p:commandButton
,也就是说$(“#templetFile \:editButton”)为空,为什么?
有我的代码:
<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元素。为什么?如何使用javascript获取p:commandButton?
答案 0 :(得分:-1)
可能jsf会为按钮创建一个新ID,因此document.getElementById('editButton')
不起作用。为了解决这个问题,你可以在按钮中添加一个任意样式类;
styleClass="button myButtonToClick"
和javascript应该是这样的;
var x =document.getElementsByClassName("myButtonToClick");
x[0].click();