2011-04-27 74 views
0

例如:我怎么返回JavaScript语句到AJAX的responseText

在HTML页面

 

xmlHttpObj.open("GET", "url.php", true); 
xmlHttpObj.onreadystatechange = function(){ 
    .. 
    document.getElementById('divInThisPage').innerHTML = xmlHttpObj.responseText; 
    .. 
} 
.. 
.. 

function foo(arg){ 
    alert(arg); 
} 
 

在url.php

 

echo "<input type='button' value='ok' onclick=\"foo('ok')\" />"; 
 

问题是,为什么警报不起作用?

编辑: 即使在url.php我把一个内联JavaScript代码的按钮仍然不起作用

 

echo "<input type='button' value='ok' onclick=\"alert('ok')\" />"; 
 
+1

警报在哪里? ajax代码在哪里?请提供更多代码 – jotapdiez 2011-04-27 13:46:29

+0

您是否有实际的网页示例? – 2011-04-27 13:48:03

+1

你的'input'元素是否被放入文档中?如果是这样,当你点击它时你的浏览器是否显示JS错误? – Jeremy 2011-04-27 13:48:48

回答

2

我想你问就是为什么,当你点击按钮这是由您的ajax请求创建的,则警报不会提示。这可能是因为onclick事件处理程序foo()尚未注册。这个我认为是依赖于浏览器 - 尝试在不同的浏览器,它可能工作。

无论如何,它不工作,因为当你动态地将HTML添加到这样的页面时,onclick并未在浏览器中注册。在这种情况下

function doAddEventListener(elem, eventName, fn) { 
    if(elem.addEventListener) { 
     elem.addEventListener(eventName, fn, false); 
    } else if (elem.attachEvent) { 
     elem.attachEvent('on'+eventName, fn); 
    } 
} 

其中fn是您要添加的功能,即fooeventName将是“点击”,并elem是你想要的元素:您可以将事件侦听器添加到一个元素是这样添加侦听器。

+0

dohhh,当然......谢谢Richard!你是男人! – Bagong21 2011-04-27 14:06:51

0

刚刚在FF3上试过相同的代码,它似乎工作得很好。你确定没有错别的地方吗?尝试使用萤火虫的线索。