如何使按钮单击事件调用dojo函数?

时间:2014-04-29 11:42:48

标签: javascript jquery spring function dojo

我有一些javascript需要来自可爱社区的一些帮助。我正在做一些关于Jquery和DOJO的事情。

我有两个现有的应用程序。

应用程序使用大量的dojo / spring UI装饰/验证(spring 3.1.1)。另一个是纯HTML应用程序。

我现在在做什么?我正在尝试将两个项目放在一起,使用Jquery / Ajax调用从HTML项目谈话到我的spring项目,以获取从JSP生成的一些业务逻辑页面,并将JSP页面注入特定的HTML页面div(Content div)。我在这项工作上做了很多工作,我发现Jquery 1.9.1在Ajax和JSP注入方面做得很好。但是当我尝试调用我现有的JSP页面的Spring / DOJO装饰/验证功能时,我发现Jquery和DOJO之间存在重大冲突,它们根本不能共存。

从那以后,我不得不放弃Jquery,因为我大量使用了Spring / DOJO。我在javascript函数调用中发现DOJO与Jquery不一样。

例如,我可以很容易地从按钮单击事件中触发Jquery函数:

javascript as:

function doSignout() {
console.log("dosignout function called.");
$.ajax({
    contentType: "application/json; charset=utf-8",
    url: 'doSignout',
    query: ({name : "me"}),
       success: function(data){
          if (data=="login required."){
            doAjax();
           }
       }
     });
}

HTML as:

<input value="Sign out" name="Sign out" id="Sign out" class="submit" type="submit" onClick="doSignout()" />

但我发现,在道场没有办法做同样的事情。

任何建议都将受到高度赞赏。

来自澳大利亚的Cidy

1 个答案:

答案 0 :(得分:0)

你试过而不是

$.ajax({
    contentType: "application/json; charset=utf-8",
    url: 'doSignout',
    query: ({name : "me"}),
       success: function(data){
          if (data=="login required."){
            doAjax();
         }
       }
});

这将是dojo等价物

dojo.xhrPost({
    url:'doSignout',
    content: {key1:"value1",key2:{key3:"value2"}},
    load:function(data){
        if (data=="login required."){
            doAjax();
        }
    }
});

检查dojo文档中的以下链接:

http://dojotoolkit.org/reference-guide/1.9/dojo/xhrPost.html#dojo-xhrpost

http://dojotoolkit.org/reference-guide/1.9/dojo/xhrGet.html#dojo-xhrget

使用dojo / on

监听事件的教程

http://dojotoolkit.org/documentation/tutorials/1.9/events/

和dojo.connect:

http://dojotoolkit.org/documentation/tutorials/1.6/events/

你只需要“DOM Events”部分