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