让我们说点击modalPanel上的按钮A可以执行actionA:
<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吗?
任何帮助都将不胜感激!!
答案 0 :(得分:1)
到目前为止,您需要知道所讨论的<a>
组件的生成的HTML <a4j:commandLink>
元素的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()">