2010-07-30 32 views
0

在我的index.php的底部,我有一个Javascript函数配对<script>标签。我有一个点击处理程序调用产生Prototype.js Ajax请求的函数。原型Ajax.Request在某些情况下不会执行

该版本不起作用(没有请求),虽然myFunction本身被调用。

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

但是当我添加alert(“something”);行脚本php脚本被称为。

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

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

+0

你怎么知道这个请求没有被创建?您是否尝试安装Firefox“TamperData”插件来跟踪HTTP请求,甚至是Firebug?简单地改变这种回调应该不会影响HTTP请求是否被创建,所以无论是*被创建,否则第二个测试都有其他不同之处。 – Pointy 2010-07-30 14:18:17

+0

请求的脚本是我自己的,我在那里有error_log句子,我可以看到它没有被执行。 – texmex5 2010-07-30 14:36:23

回答

0

所以我发现了这个问题。问题是我如何添加事件处理程序,以我的“按钮”

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

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

周围<p>的链接标签是ofcourse一个坏主意...

这工作:

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

感谢所有对你的答案。我想这个故事的寓意是,从Javascript本身看起来更远,看看它被调用的地方以及可能会被打破的地方。

0

您应该尝试onComplete事件。原型有时不属于任何onSuccessonFailure但所有请求将被onComplete

覆盖还尝试与包裹块Try - Catch Ajax请求,它可能会有所帮助。

+0

尝试捕获没有帮助,添加警报(“Blah”)到onComplete结束在相同的结果 - 东西开始工作。但我不希望每次请求完成时都显示警报:) – texmex5 2010-07-31 06:32:52

相关问题