用JS控制回車事件的代碼
更新時(shí)間:2011年02月20日 23:19:12 作者:
在寫代碼的時(shí)候偶爾會(huì)碰到被回車按鈕所糾結(jié)的時(shí)候,例如上周客戶反應(yīng)我們的產(chǎn)品在頁面按回車后,總是自動(dòng)登出,而不是提交數(shù)據(jù),客戶對(duì)此也是意見很大。
我們操作習(xí)慣也確實(shí)是喜歡用回車建來直接提交數(shù)據(jù)。經(jīng)過對(duì)項(xiàng)目的一番檢查,這其實(shí)是頁面設(shè)計(jì)得不好,導(dǎo)致瀏覽器在加載時(shí)把退出登錄按鈕當(dāng)成默認(rèn)的按鈕,所以一按回車就觸這退出按鈕事件??紤]到一個(gè)龐大的項(xiàng)目為了這個(gè)問題去改頁面設(shè)計(jì)也不太現(xiàn)實(shí),況且客戶要求在有“保存”按鈕時(shí)按回車按鈕就觸發(fā)“保存”按鈕事件,有“下一步”按鈕時(shí)就觸發(fā)它的事件,有“提交”按鈕時(shí)就觸發(fā)相應(yīng)的事件等等,如果一個(gè)個(gè)頁面去改動(dòng)那工作量可就大得驚人了。于是乎考慮用直接在模板header文件中用js來實(shí)現(xiàn)全站對(duì)回車按鈕的事件觸發(fā),下面是相應(yīng)的代碼:
<script language="javascript" for="document" event="onkeydown">
//回車按鈕事件處理
if (event.keyCode == 13){
event.keyCode=0;
var list=document.getElementsByTagName("input");
for(var i=0;i<list.length && list[i];i++)
{
if(list[i].id.indexOf("IBtnNextStep")>0){//ID中包含有“IBtnNextStep”字眼的按鈕
list[i].click();
}
if(list[i].id=="BtnSave"){
list[i].click();
}
if(list[i].id=="BtnSumbit"){
list[i].click();
}
}
return false;
}
</script>
其實(shí)也蠻簡(jiǎn)單的,就在模板文件中加入上面那段,先獲取回車事件,然后就獲取頁面的所有按鈕,一個(gè)個(gè)循環(huán)判斷按鈕ID是否符合你要求,是的就去觸發(fā)按鈕的事件。上面代碼還存在一個(gè)問題就是當(dāng)你頁面中同時(shí)存在了那幾個(gè)ID的按鈕時(shí),會(huì)導(dǎo)致觸發(fā)所有按鈕,至于如何改進(jìn)就看實(shí)際應(yīng)用場(chǎng)景了,而在我的項(xiàng)目中是不會(huì)出現(xiàn)同時(shí)存在這幾個(gè)按鈕,所以可以平安應(yīng)用。
復(fù)制代碼 代碼如下:
<script language="javascript" for="document" event="onkeydown">
//回車按鈕事件處理
if (event.keyCode == 13){
event.keyCode=0;
var list=document.getElementsByTagName("input");
for(var i=0;i<list.length && list[i];i++)
{
if(list[i].id.indexOf("IBtnNextStep")>0){//ID中包含有“IBtnNextStep”字眼的按鈕
list[i].click();
}
if(list[i].id=="BtnSave"){
list[i].click();
}
if(list[i].id=="BtnSumbit"){
list[i].click();
}
}
return false;
}
</script>
其實(shí)也蠻簡(jiǎn)單的,就在模板文件中加入上面那段,先獲取回車事件,然后就獲取頁面的所有按鈕,一個(gè)個(gè)循環(huán)判斷按鈕ID是否符合你要求,是的就去觸發(fā)按鈕的事件。上面代碼還存在一個(gè)問題就是當(dāng)你頁面中同時(shí)存在了那幾個(gè)ID的按鈕時(shí),會(huì)導(dǎo)致觸發(fā)所有按鈕,至于如何改進(jìn)就看實(shí)際應(yīng)用場(chǎng)景了,而在我的項(xiàng)目中是不會(huì)出現(xiàn)同時(shí)存在這幾個(gè)按鈕,所以可以平安應(yīng)用。
相關(guān)文章
你必須知道的Javascript知識(shí)點(diǎn)之"單線程事件驅(qū)動(dòng)"的使用
本篇文章小編為大家介紹,你必須知道的Javascript知識(shí)點(diǎn)之"單線程事件驅(qū)動(dòng)"的使用。需要的朋友參考下2013-04-04Javascript與vbscript數(shù)據(jù)共享
Javascript與vbscript數(shù)據(jù)共享...2007-01-01深入理解JavaScript中的call、apply、bind方法的區(qū)別
下面小編就為大家?guī)硪黄钊肜斫釰avaScript中的call、apply、bind方法的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05基于JavaScript+HTML編寫一個(gè)日期選擇插件
在現(xiàn)代Web應(yīng)用程序中,日期選擇器是一個(gè)非常常見的組件,用戶可以使用它來選擇特定的日期,在本篇文章中,我們將使用JavaScript和HTML來創(chuàng)建一個(gè)簡(jiǎn)單但功能強(qiáng)大的日期選擇插件,這個(gè)日期選擇插件是比較考驗(yàn)Js基本功的,需要的朋友可以參考下2023-10-10最好用的Bootstrap fileinput.js文件上傳組件
這篇文章主要為大家詳細(xì)介紹了最好用的Bootstrap fileinput.js文件上傳組件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12javascript中Array()數(shù)組函數(shù)詳解
在JavaScript中數(shù)組也是比較常用的對(duì)象之一,數(shù)組是值的有序集合,本篇文章給大家分享Javascript中Array()數(shù)組函數(shù)詳解,需要的朋友可以參考下2015-08-08微信小程序?qū)崿F(xiàn)卡片層疊滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)卡片層疊滑動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06