[英]Cross browser & IE 8 support event Listener
it's driving me insane, i can get the basic code working when i just attach it to a certain form but i want to catch all forms. 它使我发疯,当我将基本代码附加到某种形式但我想捕获所有形式时,我就能使基本代码正常工作。 here is my basic code i've started from
这是我从这里开始的基本代码
var form = document.getElementById('test');
try {
form.addEventListener("submit", someFunction, false);
} catch(e) {
form.attachEvent("onsubmit", someFunction1); //Internet Explorer 8-
}
function someFunction() {
alert("test");
}
the actual core function works for what i need i just need to add in for every form not just one here's what i'm trying but adding a loop in and using 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");
}
all the js seems valid but still no success any ideas would be great. 所有的js似乎都是有效的,但仍然没有成功,任何想法都很棒。
i've taken all that on board and here's what i've got 我已经把所有东西都带上了,这就是我所拥有的
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);
}
the top half works perfectly fine, but after catch(e) is added it stops working any ideas.. sorry, i'm new to js 上半部分效果很好,但是在添加catch(e)之后,它停止了任何工作。.对不起,我是JS新手
The problem is when you're calling the fn: FormEnum(). 问题是当您调用fn:FormEnum()时。 More than likely, you're trying to assign event handlers to forms that don't exist in your DOM.
您极有可能试图将事件处理程序分配给DOM中不存在的表单。 Try putting FormEnum() inside a tag instead.
尝试将FormEnum()放在标签内。
Also, what Vitor said: make sure you're using the declared variable "form" instead of "forms". 同样,Vitor所说的:确保您使用的是声明的变量“ form”而不是“ forms”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.