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は悪です。文字列をsetTimeoutに渡さないでください。関数を渡してください。

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