2011-07-06 120 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

这将有助于很多知道实际页面看起来像传递给浏览器的内容。 “查看源代码”为“