取消确认表格重新提交对话框

时间:2016-04-07 13:27:56

标签: javascript xpages

我想为用户打开一些动作对话框以进行一些选择。页面本身处于读取模式。但是,对话有输入字段。我想在用户重新加载页面时取消确认表单重新提交对话框。这是我的xPage:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    enableModifiedFlag="false" xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xp:button value="Label" id="button1">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete">
            <xp:this.action><![CDATA[#{javascript:getComponent("dialog1").show();}]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:br></xp:br>
    <xp:br></xp:br>
    <xe:dialog id="dialog1">
        <xe:dialogContent id="dialogContent1">
            <xp:inputText id="inputText1" style="width:654.0px"></xp:inputText>
        </xe:dialogContent>
        <xe:dialogButtonBar id="dialogButtonBar1">
            <xp:button value="OK" id="button2">
                <xp:eventHandler event="onclick" submit="false">
                    <xp:this.script><![CDATA[XSP.closeDialog("#{id:dialog1}");]]></xp:this.script>
                </xp:eventHandler>
            </xp:button>
        </xe:dialogButtonBar>
    </xe:dialog>
</xp:view>

1 个答案:

答案 0 :(得分:0)

它有点难看,但除了关闭对话框的客户端JS之外,你可以通过添加服务器端javascript来关闭对话框后重新加载整个XPage。我假设您将在对话框中包含更多代码和逻辑,因此您必须确保这也将执行...关闭按钮的代码可能如下所示:

        <?xml version="1.0" encoding="UTF-8"?>
        <xp:view xmlns:xp="http://www.ibm.com/xsp/core"
enableModifiedFlag="false" xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:button value="Label" id="button1">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="complete">
        <xp:this.action><![CDATA[#{javascript:getComponent("dialog1").show();}]]></xp:this.action>
    </xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xe:dialog id="dialog1">
    <xe:dialogContent id="dialogContent1">
        <xp:inputText id="inputText1" style="width:654.0px"></xp:inputText>
    </xe:dialogContent>
    <xe:dialogButtonBar id="dialogButtonBar1">
        <xp:button value="OK" id="button2">
            <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
                <xp:this.script><![CDATA[XSP.closeDialog("#{id:dialog1}");]]></xp:this.script>
                <xp:this.action><![CDATA[#{javascript:context.reloadPage()}]]></xp:this.action>
            </xp:eventHandler>
        </xp:button>
    </xe:dialogButtonBar>
</xe:dialog>
</xp:view>