为什么我会在参数列表之后得到“缺失”错误?

时间:2011-06-19 17:24:16

标签: javascript ajax firebug

我正在使用AJAX系统提交表单,但我甚至无法加载我的JavaScript,Firebug报告如下。

missing ) after argument list
    else if( httpRequest.responseText == 'already logged in' )\n

我在互联网上搜索了一下,但我发现的只是引用错误。 (ExampleAnother Example)。我没有任何错误引用,所以我真的不知道发生了什么。我的更多代码如下 (删除了一些不相关的函数调用以删除加载消息。)

if(httpRequest.responseText != "failure")  // Works fine!
{
    document.getElementById("result").innerHTML = "[Success message]";
    setTimeout("2000", function(){ window.location.assign("[link to page]");
}
else if(httpRequest.responseText == 'already logged in')  // Similar to above, but fails
{
    document.getElementById("result").innerHTML = "[error message]";
}
else
{
    document.getElementById("result").innerHTML = "[error message]";
}

可能有人知道为什么会出现这个错误? (对于更多成员,可能有助于概述导致此错误的原因,这将允许此页面与其他代码一起使用)

4 个答案:

答案 0 :(得分:7)

setTimeout("2000", function(){ window.location.assign("[link to page]");

错过})导致下一行失败(整个语法错误

应该是

 setTimeout (function(){ window.location.assign("[link to page]") } , 2000 );

setTimeout函数作为第一个参数,将整数作为第二个参数

more here

答案 1 :(得分:5)

如果您将代码分解得更多,您会发现问题:

setTimeout("2000", function()
{
    window.location.assign("[link to page]");

所以你错过了一个}和a);

setTimeout(function()
{
    window.location.assign("[link to page]");
},2000);

编辑:参数的顺序也是错误的,就像卡斯帕指出的那样。

答案 2 :(得分:3)

   setTimeout("2000", function(){ window.location.assign("[link to page]");

应该是

   setTimeout("2000", function(){ window.location.assign("[link to page]");});

答案 3 :(得分:2)

您错过了});此处

setTimeout("2000", function(){ window.location.assign("[link to page]");

应该是

setTimeout("2000", function(){ window.location.assign("[link to page]"); });