0

我想通过单击一个按钮来“激活”单击其他 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>
4

2 回答 2

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);
于 2012-08-22T19:41:25.083 回答
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>
于 2012-08-22T09:38:12.837 回答