跨浏览器& IE 8支持事件监听器

时间:2013-06-10 15:39:32

标签: javascript javascript-events

它让我疯了,当我将它附加到某种形式时,我可以得到基本代码,但我想抓住所有形式。这是我从

开始的基本代码
    var form = document.getElementById('test');
try {
    form.addEventListener("submit", someFunction, false);

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


function someFunction() {

 alert("test");   
}

实际的核心功能适用于我需要的东西我只需要为每个表单添加而不仅仅是一个我正在尝试但是添加一个循环并使用我

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);


}

上半部分工作得非常好,但是在追加(e)之后它会停止工作任何想法..对不起,我是js的新手

1 个答案:

答案 0 :(得分:0)

问题是当你调用fn:FormEnum()时。您很可能尝试将事件处理程序分配给DOM中不存在的表单。尝试将FormEnum()放在标记内。

另外,Vitor说:确保你使用声明的变量“form”而不是“form”。