2011-07-06 156 views
-1

所以,我有一個PHP腳本的頁面,其中包括一些JavaScript的所有我的HTML回聲。有問題的javascript函數應該在更改選擇框時執行,但每次更改選擇框時,我都會在我的javascript控制檯中得到一個錯誤,指出該函數未定義。Javascript錯誤,功能沒有定義,當它明確定義

我甚至已經減少了功能,只是顯示一個警告框,以幫助調試,但我仍然收到錯誤。

這裏的負責創建選擇框的PHP函數:

function CreateMainSelect() 
{ 
    $html = "<select name=\"main_select\" onChange=\"test()\" id=\"main_select\" >"; 
    $html .= "<option value='all'>All</option>"; 
    $html .= "<option value='past'>Past</option>"; 
    $html .= "<option value='current_and_future'>Current and Future</option>"; 
    $html .= "<option value='date_range'>Date Range</option>"; 
    $html .= "</select>"; 

    return $html; 
} 

完全沒有必要將它的功能,但我需要稍微修改另一個類似的功能已經到位,所以請不要太沮喪跟我!!

而這裏的JavaScript函數中迴應:

echo '<script type="text/javascript">'; 
echo 'function test()'; 
echo '{'; 
echo 'alert("hello world");'; 
echo '}'; 
echo '</script>'; 

的JavaScript被在PHP文件的底部呼應的。我試着將它移到頂端,但是這並沒有改變任何東西。

編輯:謝謝大家的回覆,你的所有建議都非常有幫助。我想出了這個問題,多達兩件事情出錯了。第一個問題是我的瀏覽器是(我想不管怎樣)緩存我的JavaScript,所以我的功能的老版本的bug越來越多,這就是爲什麼一個完美的功能出現以創建錯誤。通過清除緩存解決。

另一個問題(我認爲)是javascript函數實際上並沒有在執行前加載。我通過將JavaScript放入單獨的.JS文件並將其鏈接到.PHP文件來解決此問題。

+0

還有更多的JavaScript?如果有任何錯誤,JavaScript解析在大多數情況下停止,所以其餘不讀取 - >意味着函數未加載,所以這就是它可能沒有定義的原因.... – Nanne

+0

這將有助於很多知道實際頁面看起來像傳遞給瀏覽器的內容。 「查看源代碼」爲「