這篇文章主要介紹了js實現鍵盤上下左右鍵選擇文字并顯示在文本框的方法,涉及javascript操作鍵盤事件及文本框的相關技巧,非常簡單實用,需要的朋友可以參考下
本文實例講述了js實現鍵盤上下左右鍵選擇文字并顯示在文本框的方法。分享給大家供大家參考。具體實現方法如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>SimulateUpDownKeySelect.html</title>
- <style type="text/css">
- #divSelect {border:1px solid red; width:208px !important;width:210px;}
- #divSelect ul {width:200px;margin:3px; margin-left:-35px;*margin-left:3px;overflow:hidden}
- #divSelect ul li {float:left; list-style-type:none;width:45px;height:14px;line-height:20px;font:14px arial;text-align:center;padding:2px}
- #divSelect li:hover {background :green;cursor:pointer}
- #txtInput {width:205px;}
- </style>
- </head>
- <body>
- <form method="post" action="##">
- <input type="text" id="txtInput" value="" autocomplete="off" onkeydown="if(event.keyCode==13)return false;" />
- <!--
- 防止回車鍵觸發表單提交
- onKeyPress
- -->
- <div id="divSelect">
- </div>
- <script type="text/javascript">
- var list="<ul>"
- list+="<li>科幻片</li><li>戰爭片</li><li>動作片</li><li>愛情片</li><li>劇情片</li><li>記錄片</li><li>綜藝片</li><li>喜劇片</li><li>動畫片</li><li>勵志片</li><li>恐怖片</li><li>古裝片</li><li>電視劇</li><li>讀書</li><li >小說</li><li>作品集</li><li>歷史</li><li>詩歌</li><li >散文</li><li>軍事</li>";
- list+="</ul>"
- document.getElementById('divSelect').innerHTML=list;
- </script>
- </form>
- <script type="text/javascript">
- <!--
- function $(sId)
- {
- return document.getElementById(sId);
- }
- function clearSelectedOptBgColor(target)
- {
- if (target.seletedIndex >= 0)
- target.options[target.seletedIndex].style.background = "";
- }
- function setSelectedOptBgColor(target)
- {
- target.options[target.seletedIndex].style.background = "green";
- }
- var upKeyCode = 38;
- var downKeyCode = 40;
- var enterKeyCode = 13;
- var oInput = $("txtInput");
- oInput.options = $("divSelect").getElementsByTagName("li");
- oInput.seletedIndex = -1;
- oInput.focus();
- //oInput.onKeyPress{}
- oInput.onkeyup = function(event){
- if (event == undefined)
- event = window.event;
- switch (event.keyCode)
- {
- case 37:
- clearSelectedOptBgColor(this);
- this.seletedIndex--;
- if (this.seletedIndex < 0)
- this.seletedIndex = this.options.length - 1;
- this.value = this.options[this.seletedIndex].innerHTML;
- setSelectedOptBgColor(this);
- break;
- case 38:
- clearSelectedOptBgColor(this);
- this.seletedIndex= this.seletedIndex-4;
- if (this.seletedIndex < 0)
- this.seletedIndex = this.options.length - 1;
- this.value = this.options[this.seletedIndex].innerHTML;
- setSelectedOptBgColor(this);
- break;
- case 39:
- clearSelectedOptBgColor(this);
- this.seletedIndex++;
- if (this.seletedIndex >= this.options.length)
- this.seletedIndex = 0;
- this.value = this.options[this.seletedIndex].innerHTML;
- setSelectedOptBgColor(this);
- break;
- case 40:
- clearSelectedOptBgColor(this);
- this.seletedIndex= this.seletedIndex+4;
- if (this.seletedIndex >= this.options.length)
- this.seletedIndex = 0;
- this.value = this.options[this.seletedIndex].innerHTML;
- setSelectedOptBgColor(this);
- break;
- case enterKeyCode:
- this.value = this.options[this.seletedIndex].innerHTML;
- //alert('aa')
- break;
- }
- };
- oInput.onblur = function(){
- clearSelectedOptBgColor(this);
- this.seletedIndex = 1;
- };
- //-->
- </script>
- </body>
- </html>
希望本文所述對大家的javascript程序設計有所幫助。
新聞熱點
疑難解答
圖片精選