2011-04-27 50 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上試過相同的代碼,它似乎工作得很好。你確定沒有錯別的地方嗎?嘗試使用螢火蟲的線索。