原型Ajax.Request在某些情况下不执行

时间:2010-07-30 13:19:51

标签: javascript prototypejs

在我的index.php的底部,我在配对的Javascript标记之间有一个<script>函数。我有一个单击处理程序,它调用发出Prototype.js Ajax请求的函数。

虽然调用了myFunction本身,但此版本不起作用(没有请求)。

function myFunction(fr, fw) {
    new Ajax.Request('/ascript', {
        method: 'post',
        parameters: { a: fr, b: fw }, 
        onSuccess: function(transport) { }, 
        onFailure: function(request) { }
    });
}

然而,当我添加警报(“某事”);行调用ascript php脚本。

function myFunction(fr, fw) {
    new Ajax.Request('/ascript', {
        method: 'post',
        parameters: { a: fr, b: fw }, 
        onSuccess: function(transport) { alert("here"); }, 
        onFailure: function(request) { }
    });
}

可能是一些奇怪的空白问题?我的语法是否有错误?

2 个答案:

答案 0 :(得分:0)

您应该尝试onComplete事件。原型有时不属于onSuccessonFailure,但所有请求都将由onComplete

涵盖

也尝试用Try - Catch块包装ajax请求,这可能会有所帮助。

答案 1 :(得分:0)

所以我发现了问题。问题在于我如何将eventhandler添加到我的“按钮”

最初(在我的问题中给出的两个例子中)我有:

echo "<a href='' ><p id='button' onclick='myFunction(" .$a .", " .$b.");'>Click</p></a>";

带有链接标记的周围<p>当然是一个坏主意......

这有效:

echo "<a href='' onClick='Event.stop(event);'><p id='button' onclick='myFunction(" .$a .", " .$b .");'>Click</p></a>";

感谢大家的回答。我想这个故事的寓意是,看起来更远离Javascript本身,看看它被调用的地方以及可以在那里打破的东西。