XPages 如何使用操作组中的操作来停止表单提交

Dan*_*Dan 1 xpages

我有一个基于操作组的按钮。我想要一个动作来停止处理按钮——停止触发下一个动作。

我尝试了确认操作,但用户可以单击“确定”,它将继续。我尝试了一个返回 false 的执行脚本,但没有执行任何操作。

我一直在阅读有关事件处理程序的内容,但不确定如何将其合并到按钮的代码本身中。

这是按钮背后的当前代码:

<xp:button id="button1" value="Create Account">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="complete" id="eventHandler1">
        <xp:this.action>
            <xp:actionGroup>
                <xp:modifyField
                    name="ac_Key" value="#{javascript:@Unique()}"
                    var="document1">
                </xp:modifyField>
                <xp:saveDocument></xp:saveDocument>
                <xp:openPage
                    name="/successAccount.xsp">
                </xp:openPage>
            </xp:actionGroup>
        </xp:this.action>
    </xp:eventHandler>
</xp:button>
Run Code Online (Sandbox Code Playgroud)

感谢你的帮助!

Per*_*ten 5

这个简单的示例使用确认操作,仅在用户选择“确定”时才继续。如果用户单击“取消”,则不会再发生任何事情。如果用户单击“确定”,浏览器将打开index.xsp 页面。

<xp:button value="Label" id="button1">
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
        <xp:this.action>
            <xp:actionGroup>
                <xp:confirm message="Sure?"></xp:confirm>
                <xp:openPage name="/index.xsp"></xp:openPage>
            </xp:actionGroup>
        </xp:this.action>
    </xp:eventHandler>
</xp:button>
Run Code Online (Sandbox Code Playgroud)

更新:此示例在 actionGroup 上使用一个条件,如果条件为 false,则可以阻止 actionGroup 执行:

<xp:actionGroup condition="#{javascript:validateSomething()}">
    <xp:save name="/opskrifter.xsp"></xp:save>
</xp:actionGroup>
Run Code Online (Sandbox Code Playgroud)