csjs onclick事件刷新我的xpage

时间:2017-09-07 13:43:30

标签: javascript xpages xpages-extlib

在xpage上,我有一个对话框,我想从csjs打开。

在DDE KC中解释如下: https://www.ibm.com/support/knowledgecenter/SSVRGU_9.0.0/com.ibm.designer.domino.ui.doc/extlib_controlref_dialog.html

所以我添加了两个按钮。一个HTML和一个Button控件:

<button onclick="openDlgAction('1')">Open Dialog</button>
<xp:button value="Open Dialog" id="button4">
    <xp:eventHandler event="onclick" submit="false">
        <xp:this.script><![CDATA[XSP.openDialog("#{id:dlgAction}")]]></xp:this.script>
    </xp:eventHandler>
</xp:button>

以下是我的对话框的呈现方式:

<span id="view:_id1:_id2:cbMain:dlgAction" style="display: none" title="Select Action"></span>

为了在openDlgAction CSJS函数中生成正确的ID,我通过脚本块将其添加到Xpage。

以下是在浏览器中呈现的方式:

<script type="text/javascript">
function openDlgAction(unid){
    XSP.openDialog("view:_id1:_id2:cbMain:dlgAction")
}
</script>

Button控件下的函数呈现如下:

function view__id1__id2_cbMain__id319_clientSide_onclick(thisEvent) {
XSP.openDialog("view:_id1:_id2:cbMain:dlgAction")
}

我不明白为什么Button控件有效(对话框出现),在HTML按钮下页面会快速刷新。

出于好奇,我添加了另一个带有onclick事件的HTML按钮,该事件也刷新了xpage:

<button onclick="alert('hi')">click me</button>

我在俯瞰什么?

1 个答案:

答案 0 :(得分:3)

单击&#34; html按钮&#34;页面会重新加载。因为按钮没有指定按钮类型。因此它被解释为提交按钮。

因此,将按钮类型设置为&#39;按钮&#39;:

<button type='button' onclick="openDlgAction('1')">Open Dialog</button>