驗證不通過,阻止表單提交

一種情況是寫在onclick,下面兩種寫法都可以:

<inputtype="submit"value="提交1"onClick="returncheckform()">//IE可以阻止,FF可以阻止

<inputtype="submit"value="提交4"onClick="checkform_success(event)">//IE可以阻止,FF可以阻止

另一種情況是動態綁定onclick事件:

<inputname="submit5"type="submit"value="提交5">//submit5.attachEvent("onclick",checkform_success)IE可以阻止,FF可以阻止

下面看代碼,自行調試!!!

複製代碼
<%
response.write(
trim(request.form("a")))
%>
<formname="myform"method="post"action="">
<inputname="a"value="abc"><br>
<inputtype="submit"value="提交1"onClick="returncheckform()">//onClick="returncheckform()"IE可以阻止,FF可以阻止<br><br>
<inputtype="submit"value="提交2"onClick="checkform()">//onClick="checkform()"IE無法阻止,FF無法阻止<br><br>
<inputname="submit3"type="submit"value="提交3">//submit3.attachEvent("onclick",checkform)IE可以阻止,FF無法阻止<br><br>
如果是直接寫在onclick裏面,我們直接用returncheckform()就好了。
<br>
問題是有時候,我們又不樂意寫在DOM元素裏,非要搞什麼動態綁定click事件。
<br>
動態綁定click事件請看提交3,IE可以阻止,FF無法阻止,瀏覽器不兼容!
<br><br>
<!--以下兩個是解決方案,提交4是直接寫在onclick裏面,提交5是動態綁定事件的情況-->
<inputtype="submit"value="提交4"onClick="checkform_success(event)">//onClick="checkform_success(event)"IE可以阻止,FF可以阻止<br><br>
<inputname="submit5"type="submit"value="提交5">//submit5.attachEvent("onclick",checkform_success)IE可以阻止,FF可以阻止<br><br>
</form>
<script>
if(document.all){//ie
document.myform.submit3.attachEvent("onclick",checkform);
document.myform.submit5.attachEvent(
"onclick",checkform_success);
}
else{//ff
document.myform.submit3.addEventListener("click",checkform,false);
document.myform.submit5.addEventListener(
"click",checkform_success,false);
}
functioncheckform(){
if(document.myform.a.value=="abc"){
alert("驗證不通過!");
returnfalse;
}
}
functioncheckform_success(e){
e
=e||window.event;
if(document.myform.a.value=="abc"){
alert(
"驗證不通過!");
if(document.all)e.returnValue=false;//ie,window.event.returnValue=false阻止元素默認行爲
elsee.preventDefault();//火狐,event.preventDefault阻止元素默認行爲
}
}
</script>
複製代碼
作者:焱龍
申明:作者寫博是爲了總結經驗,和以後的工作參考之用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章