javascript - XPage 事件 onStart 和 onComplete 与 dojo.connect 结合使用

标签 javascript dojo xpages

我想将 xp:eventHandler 事件 onStartonCompletedojo.connect 结合使用。

看一下这段代码:

    <xp:scriptBlock id="scriptBlock1">
        <xp:this.value><![CDATA[
dojo.connect(dojo.byId("#{id:btnSubmit}"), "onclick", callbackOnClick);
dojo.connect(dojo.byId("#{id:btnSubmit}"), "onComplete", callbackOnComplete);

function callbackOnClick() {
    alert("onclick works!!!");
}

function callbackOnComplete() {
    alert("onComplete works!!!");
}   ]]></xp:this.value>
    </xp:scriptBlock>

  <xp:button value="Submit" id="btnSubmit">
        <xp:eventHandler event="onclick" submit="true" refreshMode="norefresh">
            <xp:this.action><![CDATA[#{javascript:// do something on server side}]]></xp:this.action>
<!--            <xp:this.onComplete><![CDATA[alert("oncomplete");]]></xp:this.onComplete>-->
        </xp:eventHandler>
    </xp:button>

dojo.connect 非常适合 onclick-Event,但不适用于 onComplete-Event?

预先感谢您的回答。

最佳答案

虽然onclick是一个真实的浏览器事件(可以与dojo连接),但oncomplete事件仅由XPages的XSP对象提供。

当查看生成的 HTML 代码(取消注释掉示例的 onComplete 事件)时,您可以看到它的代码已转换为字符串(倒数第二个参数):

XSP.attachPartial("view:_id1:_id2", "view:_id1:btnSubmit", null, "onclick", function(){}, 2, "@none", null, "alert\u0028\u0022oncomplete\u0022\u0029;", null);

XSP._partialRefresh方法完成时评估该字符串。

这就是为什么你不能在这里使用dojo.connect

关于javascript - XPage 事件 onStart 和 onComplete 与 dojo.connect 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31721007/

相关文章:

Javascript 模块管理系统(dojo.require 替代品?)

java - XPages:在文档集合中导航

javascript - 如何使用 CSJS 禁用 xPage 面板

javascript - 基于属性的 Angular Directive(指令)模板变量

javascript - 如何在 angularjs 单元测试中触发 mousemove 事件

javascript - 如何加载比加载 html 文件更高的一个文件夹中可用的脚本文件

javascript - 如何获取 JSON POST 的结果

javascript - 如何防止我的网站在除 chrome 之外的任何其他浏览器中打开

javascript - Dojo 中的日期和时间小部件

java - XPage:使用内嵌图像显示电子邮件内容