假设单击模式面板上的按钮a执行操作a:
<a4j:commandLink styleClass="abc"
immediate="true"
action="actionA"
oncomplete="#{rich:component('modalPanel')}.hide(); Event.stop(event); return false;">
</a4j:commandLink>
现在我有了另一个按钮,按钮B,它需要模仿按钮A的功能。下面是按钮B的代码:
<h:outputLink value="javascript:void(0)" class="btn-image close">
<span><h:outputText value="Close"></h:outputText></span>
<rich:componentControl for="#{(empty modalId) ? defaultModalId : modalId}" operation="hide" event="onclick"/>
</h:outputLink>
在rich:componentControl的"for"属性中,我可以搜索按钮A并调用actionA吗?
任何帮助都将不胜感激!!
首先,您需要知道所讨论的<a4j:commandLink>
组件的生成HTML <a>
元素的ID。如果它是动态/自动生成的,您希望JSF通过给组件和父UINamingContainer
组件(如<h:form>
)一个固定ID 来生成一个固定的客户端ID
<h:form id="myform">
<a4j:commandLink id="mylink" ... />
...
</h:form>
在上面的示例中,ID将变为myform:mylink
。要通过JS调用click
事件,您可以执行
<h:outputLink onclick="document.getElementById('myform:mylink').click()">
如果您使用RichFaces4,您可以使用#{rich:element()}
根据服务器端ID来定位元素,这样您就不需要知道表单的ID
<h:outputLink onclick="#{rich:element('mylink')}.click()">