为FORM添加ONSUBMIT事件
FORM本身已经有一个onsubmit事件.如下:
<form action="#" id="form1" onsubmit="sub();">
<input type="submit" value="submit">
</form>
我想实现在提交表单时先执行另一个函数,再执行FORM的onsubmit事件,如下:
function f()
{
var fo = document.getElementById("form1");
method = fo.onsubmit;
fo.onsubmit=function(){
alert ("111111111111111111111111111......");
eval(method);
return true;
};
}
这样写是错的,请路过的好心人给点代码或建议,(捧个人场也行).
------解决方案--------------------首先
原来的sub()如果真的只是的SUB的话,可以这么写,但是如果是函数(有返回true或false),就要onsubmit="return sub()"了
另外
method = fo.onsubmit;
fo.onsubmit=function(){
alert ("111111111111111111111111111......");
eval(method);
return true;
};
这么写的确是错的离谱了
method = fo.onsubmit是把fo.onsubmit原来的函数委托给method变量
而eval()适用于执行动态字符串命令.你这样写明显是错的
JS添加事件有特定的函数,IE是attachEvent,FIREFOX是addEventListener
所以可以写一个兼容的东西,下面是按照你的要求写的一个例子
function f()
{
var fo = document.getElementById("form1");
var newFunction = function(){
alert ("111111111111111111111111111......");
return true;
}
if (window.addEventListener)
fo.addEventListener("onsubmit",newFunction,false);
else
fo.attachEvent("onsubmit",newFunction);
}
对应的移除指定委托函数还有detachEvent()和removeRvrntListener(),可以去网上具体查一下