js_sumbit&onsubmit

来源:互联网 发布:积分数据库设计 编辑:程序博客网 时间:2024/05/24 04:20

submit与onsubmit

发生顺序:onsubmit -> submit

 

1.阻止表单提单:

<script>

function submitFun()

{

//逻辑判断

return true; //允许表单提交

//逻辑判断

return false;//不允许表单提交

}

</script>

<form onsubmit=" reture submitFun();"> //注意此处不能写成 onsubmit="submitFun();" 否则将表单总是提交的

</form>

 

2.onsubmit()与submit() :

 

<script>

function fun() { alert("form_submit"); }

</script>

<form onsubmit="fun()">

<input type="submit" id="aaa" value="submit">   <!--能弹出form_submit-->

<input type="button" id="bbb" value="onclick_submit" onclick="document.forms[0].submit()">

<!-- 表单会提交,但是不会执行fun() 原因是 onsubmit事件不能通过此种方式触发(在IE环境) 直接用脚本document.formName.submit()提交表单是不会触发表单的onsubmit()事件的 -->

<input type="button" id="bb1" value="onclick_onsubmit" onclick="document.forms[0].onsubmit()"> <!--会触发fun()函数-->

</form>

 

我们还可以用(attachEvent() / addEventListener() )模拟触发器的方式实现onsubmit效果,语法如下

有时候当某一对象的某一事件被触发时,它所要执行的程序可能是一大串,有可能是要呼叫某一函数,也有可能同时又要呼叫另一函数。 

document.getElementById("btn").onclick = method1; 

document.getElementById("btn").onclick = method2; 

document.getElementById("btn").onclick = method3; 

如果这样写,那么将会只有medhot3被执行 

在IE中使用addachEvent , 

var btn1Obj = document.getElementById("btn1"); 

//object.attachEvent(event,function); 

btn1Obj.attachEvent("onclick",method1); 

btn1Obj.attachEvent("onclick",method2); 

btn1Obj.attachEvent("onclick",method3); 

执行顺序为method3->method2->method1 

Mozilla系列中需要使用 addEventListener 

var btn1Obj = document.getElementById("btn1"); 

//element.addEventListener(type,listener,useCapture); 

btn1Obj.addEventListener("click",method1,false); 

btn1Obj.addEventListener("click",method2,false); 

btn1Obj.addEventListener("click",method3,false); 

执行顺序为method1->method2->method3 

看看gmail的代码 

var Ka=navigator.userAgent.toLowerCase(); 

var rt=Ka.indexOf("opera")!=-1; 

var r=Ka.indexOf("msie")!=-1&&(document.all&&!rt); 

function Zl(a,b,c){

if(r){

a.attachEvent("on"+b,c)

}else{

a.addEventListener(b,c,false)

}

}

0 0
原创粉丝点击