通过单击一个按钮调用另外两个按钮

时间:2012-08-22 09:16:10

标签: xpages

我希望点击按钮“激活”其他2个按钮的点击。 我把这个ccjs放在了onclick事件中:

document.getElementById("#{id:button28}").click();document.getElementById("#{id:button29}").click();

但是只有按钮28才会被点击! 然后我尝试将这部分代码放在onclick事件下,part2放在onmousedown事件下。然后我必须在实际完成工作之前单击此按钮2次。

到目前为止的代码:

<xp:button value="Save" id="button26">
<xp:eventHandler event="onclick" submit="false">
    <xp:this.script>
        <xp:executeClientScript>
    <xp:this.script><![CDATA[document.getElementById("#{id:button29}").click();
    ></xp:this.script>
        </xp:executeClientScript>
    </xp:this.script></xp:eventHandler></xp:button><xp:button id="button29" value="button29">
    <xp:eventHandler
    event="onclick" submit="true" refreshMode="partial"
    id="eventHandler21" refreshId="outsidePanel5">
        <xp:this.action>
            <xp:actionGroup>
                <xp:executeScript>
                <xp:this.script><![CDATA[#{javascript:sessionScope.put("test","");// and some more code}]]>
                </xp:this.script>
                </xp:executeScript>
            </xp:actionGroup>
        </xp:this.action>
    <xp:this.onComplete><![CDATA[document.getElementById("#{id:button28}").click();]]></xp:this.onComplete>
    </xp:eventHandler></xp:button><xp:button value="button28" id="button28">
    <xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="outsideMogelijkheid">
        <xp:this.action>
            <xp:executeScript
                    script="#{javascript://some code}">
            </xp:executeScript>
        </xp:this.action>
    </xp:eventHandler></xp:button>

2 个答案:

答案 0 :(得分:1)

如果要在另一个按钮中运行SSJS,实际上可以通过编程方式调用eventHandler,而不是触发CSJS中的按钮。这也会表现得更好,因为你不是一直在CSJS和SSJS之间切换。以下代码应该有效:

var eventHandler:com.ibm.xsp.component.xp.XspEventHandler = getComponent("button29");
eventHandler.getAction().invoke(facesContext, null);
eventHandler = getComponent("button28");
eventHandler.getAction().invoke(facesContext, null);

答案 1 :(得分:0)

如果这些按钮执行SSJS代码,则需要添加代码以单击中的第二个按钮 第一个按钮的onComplete事件。

http://xpagesblog.com/XPagesHome.nsf/Entry.xsp?documentId=0574D334CB03EACF852578CB00667F54

<强>加成 onComplete的工作示例并非仅适用于部分刷新

<xp:button value="Save" id="button26">
<xp:eventHandler event="onclick" submit="false">
    <xp:this.script><![CDATA[document.getElementById("#{id:button29}").click()]]>
</xp:this.script>
    </xp:eventHandler></xp:button>
<xp:button id="button29" value="button29">

<xp:eventHandler event="onclick" submit="true"
    refreshMode="partial" refreshId="computedField1">

    <xp:this.action><![CDATA[#{javascript:viewScope.test="Almost Done"}]]>
</xp:this.action>
    <xp:this.onComplete>
<![CDATA[document.getElementById("#{id:button28}").click();]]>
</xp:this.onComplete>
    <xp:this.onError><![CDATA[alert("error")]]></xp:this.onError>
</xp:eventHandler></xp:button>

<xp:button value="button28" id="button28">
    <xp:eventHandler event="onclick" submit="true" 
refreshMode="partial" refreshId="computedField1">

        <xp:this.script><![CDATA[alert("Button 28")]]></xp:this.script>
        <xp:this.action>
            <xp:executeScript>
                <xp:this.script><![CDATA[#{javascript:viewScope.test="Done"}]]>
</xp:this.script>
            </xp:executeScript>
        </xp:this.action></xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:text escape="true" id="computedField1" value="#{viewScope.test}"></xp:text>