js实现键盘上下左右键选择文字并显示在文本框的方法


Posted in Javascript onMay 07, 2015

本文实例讲述了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程序设计有所帮助。

Javascript 相关文章推荐
jQuery源码分析-04 选择器-Sizzle-工作原理分析
Nov 14 Javascript
使用jquery实现div的tab切换实例代码
May 27 Javascript
JS保存、读取、换行、转Json报错处理方法
Jun 14 Javascript
邮箱下拉自动填充选择示例代码附图
Apr 03 Javascript
Flash图片上传组件 swfupload使用指南
Mar 14 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
Jun 28 Javascript
jQuery的extend方法【三种】
Dec 14 Javascript
Node.js读取文件内容示例
Mar 07 Javascript
vue-lazyload使用总结(推荐)
Nov 01 Javascript
pm2启动ssr失败的解决方法
Jun 29 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
Jul 03 Javascript
jquery插件懒加载的示例
Oct 24 jQuery
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
May 07 #Javascript
JavaScript更改字符串的大小写
May 07 #Javascript
JQUERY简单按钮轮换选中效果实现方法
May 07 #Javascript
JS基于面向对象实现的放烟花效果
May 07 #Javascript
jquery中trigger()无法触发hover事件的解决方法
May 07 #Javascript
javascript实现的图片切割多块效果实例
May 07 #Javascript
javascript中indexOf技术详解
May 07 #Javascript
You might like
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
php zend 相对路径问题
2009/01/12 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
Python3 批量扫描端口的例子
2019/07/25 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
北京振戎融通Java面试题
2015/09/03 面试题
普师专业个人自荐信范文
2013/11/26 职场文书
投资合作协议书
2014/04/17 职场文书
药品业务员岗位职责
2014/04/17 职场文书
宣传口号大全
2014/06/16 职场文书
小学生植树节活动总结
2014/07/04 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
业务内勤岗位职责
2015/04/13 职场文书
可可西里观后感
2015/06/08 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书