0

我真的不是很熟悉 javascript 及其语法,但我已经制定了这个函数,并且当我递归调用它时,我不断收到错误。

function loading(id, formid, point)
{
    document.getElementById(id).innerHTML='<span class="red">Please wait until this text disappears! Uploading'+point+'</span>';
    document.getElementById(formid).submit();
        if(point='...')
            {point='';}
        else
            {point+='.';}
        setTimeout('loading('+id+', '+formid+', '+point+')',10);
}

我得到的错误是:

Uncaught TypeError: Cannot call method 'submit' of null

所以看起来变量formid没有传递给recursiv调用。有谁知道为什么?

谢谢!

梅尼

4

1 回答 1

4

当您formid再次对函数进行 eval 时,您不会用引号将其括起来,因此您传递的是未定义的变量而不是字符串。

eval 无论如何都是邪恶的。不要将字符串传递给setTimeout,传递函数。

setTimeout(function () {
    loading(id, formid, point);
},10);
于 2011-02-13T16:18:35.717 回答