ie下按keydown事件会触发button
生活随笔
收集整理的這篇文章主要介紹了
ie下按keydown事件会触发button
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
負責公司的一個b2c平臺,頭部那里有個搜索查詢的功能,根據用戶輸入的內容按回車鍵也會跳轉到響應的頁面,后來在ie瀏覽器下驚奇的發現按回車鍵的同時它也會觸發底部的郵箱訂閱的button事件,開始以為是其它的地方用到了回車鍵從而沖突了,好來發現沒有其它地方用到,找了好久都找不到原因,后來百度了一下,找到了相關的問題描述:
說是Button才會有這個問題,如果是a標簽呢,我也做了實驗,a標簽是不會有這樣的問題的,只有button會有
那該怎么解決呢?其實解決辦法還是挺多的,比如可以把button換掉;我采用的是阻止keydown事件的默認行為preventDefault;的確解決問題。
1.阻止瀏覽器的默認行為
function stopDefault(e) {//如果提供了事件對象,則這是一個非IE瀏覽器 if(e && e.preventDefault) {//阻止默認瀏覽器動作(W3C)e.preventDefault();} else {//IE中阻止函數器默認動作的方式 window.event.returnValue = false; }return false;}2.停止事件冒泡
function stopBubble(e) {//如果提供了事件對象,則這是一個非IE瀏覽器if(e && e.stopPropagation) {//因此它支持W3C的stopPropagation()方法e.stopPropagation(); } else {//否則,我們需要使用IE的方式來取消事件冒泡 window.event.cancelBubble = true;}return false; }?
具體應用:
<script type="text/javascript">function enter_down(form, event) { if(event.keyCode== "13") {stopDefault(event);submitForm(form,'actionDiv');}}function stopDefault(e) {//如果提供了事件對象,則這是一個非IE瀏覽器 if(e && e.preventDefault) {//阻止默認瀏覽器動作(W3C)e.preventDefault();} else {//IE中阻止函數器默認動作的方式 window.event.returnValue = false; }return false;} </script> <input type="text" name="appGrpName_s" id="appGrpName_s" onkeydown="enter_down(this.form, event);"/>這樣就可以解決ie下面按回車鍵觸發button click()事件了
轉載請注明:前端錄?ie下按keydown事件會觸發button
<script src="http://www.wozhuye.com/index.php?m=digg&c=index&a=init&id=20-34-2"></script>總結
以上是生活随笔為你收集整理的ie下按keydown事件会触发button的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVASCRIPT常用20种小技巧汇总
- 下一篇: 移动端Web开发小记