Javascript 跨浏览器&ie8支持事件侦听器
这让我发疯,当我把基本代码附加到某个表单上时,我就可以让它工作,但我想捕获所有表单。这是我的基本代码Javascript 跨浏览器&ie8支持事件侦听器,javascript,javascript-events,Javascript,Javascript Events,这让我发疯,当我把基本代码附加到某个表单上时,我就可以让它工作,但我想捕获所有表单。这是我的基本代码 var form = document.getElementById('test'); try { form.addEventListener("submit", someFunction, false); } catch(e) { form.attachEvent("onsubmit", someFunction1); //Internet Explorer 8-
var form = document.getElementById('test');
try {
form.addEventListener("submit", someFunction, false);
} catch(e) {
form.attachEvent("onsubmit", someFunction1); //Internet Explorer 8-
}
function someFunction() {
alert("test");
}
实际的核心函数适用于我需要的,我只需要为每个表单添加一个,不仅仅是一个,这是我正在尝试的,而是添加一个循环,并使用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后,它停止了任何想法。。抱歉,我是js新手,问题是当您调用fn:FormEnum时。更有可能的是,您正在尝试将事件处理程序分配给DOM中不存在的表单。尝试将FormEnum放入标记中
另外,维托所说的:确保你使用的是声明的变量形式而不是形式。Two认为:第一,你声明了一个变量形式,但使用了形式。第二,您可以使用document.forms获取所有表单。表单[i]。attachEvent甚至不在循环中。这是你真正的密码吗?