通过styleClass选择其他按钮功能

时间:2011-05-27 19:38:38

标签: javascript jsf richfaces

让我们说点击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吗?

任何帮助都将不胜感激!!

1 个答案:

答案 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()">
相关问题