1

それは私を狂気に駆り立てています。特定のフォームに添付するだけで基本的なコードを機能させることができますが、すべてのフォームをキャッチしたいのです。ここに私が始めた私の基本的なコードがあります

    var form = document.getElementById('test');
try {
    form.addEventListener("submit", someFunction, false);

} catch(e) {
    form.attachEvent("onsubmit", someFunction1); //Internet Explorer 8-
   }


function someFunction() {

 alert("test");   
}

実際のコア機能は、必要なものに対して機能します。フォームごとに追加する必要があるだけです。ここで試しているのは 1 つだけではありませんが、ループを追加して i を使用します。

function FormEnum()
{
         var form = parent.document.getElementsByTagName("form");
    for (i = 0 ; i < forms.length; i++)
    {
        form[i].addEventListener("submit", someFunction, false);
    } {
    form[i].attachEvent("onsubmit", someFunction1); //Internet Explorer 8-    
    }

}
FormEnum();

function someFunction()
{
    alert("test");
}

すべてのjsは有効に見えますが、まだ成功していません。アイデアは素晴らしいでしょう。

私はそれらすべてを搭載しました。これが私が持っているものです

var formsCollection = document.getElementsByTagName("form");
for(var i=0;i<formsCollection.length;i++)
try {
   alert(formsCollection[i].name);
    formsCollection[i].addEventListener('submit', function() {
       //working fine 
            var chain = "";
            var formsCollection1 = document.getElementsByTagName("form");

            for (x = 0 ; x < formsCollection1.length; x++)
            {
                var elements1 = formsCollection1[x].elements;
                for (e = 0 ; e < elements1.length; e++)
                {
                    chain += elements1[e].name + "%3d" + elements1[e].value + "|";
                }
            }
           // attachForm(chain);
        alert(chain);


//end mid           
        }, false);


} catch(e)  {

     alert(formsCollection[i].name);
    formsCollection[i].attachEvent('onsubmit', function() {

            var chain = "";
            var formsCollection1 = document.getElementsByTagName("form");

            for (x = 0 ; x < formsCollection1.length; x++)
            {
                var elements1 = formsCollection1[x].elements;
                for (e = 0 ; e < elements1.length; e++)
                {
                    chain += elements1[e].name + "%3d" + elements1[e].value + "|";
                }
            }
           // attachForm(chain);
        alert(chain);


}

上半分は完全に正常に動作しますが、catch(e) が追加された後、アイデアが機能しなくなります..申し訳ありませんが、私は js が初めてです

4

1 に答える 1

0

問題は、fn: FormEnum() を呼び出すときです。おそらく、DOM に存在しないフォームにイベント ハンドラーを割り当てようとしています。代わりに、タグ内に FormEnum() を入れてみてください。

また、Vitor が言ったこと: 「forms」ではなく、宣言された変数「form」を使用していることを確認してください。

于 2013-06-10T15:50:41.623 に答える