2012-03-10 5 views
0

私はJavaScriptの専門家ではなく、ちょうど学び、いくつかのチュートリアルに従おうとしています。 JavaScriptには、フォームが送信されたときにフィールドの検証が行われます。onsubmitはwindow.onloadで呼び出されます

私が今までに書いたコードは、ページの読み込み/読み込み時にトリガされますが、これは後に必要な機能ではありません。私が理解していることから、このformFunctionはonsubmitイベントでのみ呼び出されるべきです。 あなたが私に間違っている何かを見たら私に知らせてください。私はここで を提出の上、ページ上のすべてのフォームを検証するJavaScript関数を構築したいと思い、私がこれまでに思い付いた私のJavaScriptの手順は次のとおりです。window.onloadで

1コールcheckForms機能

window.onload=checkForms; 

2ページ上のすべてのフォームをループし、ページのためのonSubmitリスナーを追加するには、提出

function checkForms(){ 
    for(var i=0; i<document.forms.length; i++){ 
     document.forms[i].onsubmit=thisForm(document.forms[i]); 
    } 
} 

3トリガTHISFORM機能を形成します代わりに、関数のリファレンスとしてそれを設定する

document.forms[i].onsubmit=thisForm(document.forms[i]); 

あなたはTHISFORMを(呼んでいる):

答えて

2

はここにあなたの問題です。一番簡単な方法は、クロージャを作ることです。

document.forms[i].onsubmit=function(){thisForm(document.forms[i])}; 
+0

私はあなたの提案ごとにコードを変更すると、ページのロードには、関数をトリガされていませんが、私はまた、何が起こっていないフォームを送信していたとき。どこが間違っていますか?ありがとうございました。 – user1261591

関連する問題