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 相关文章推荐
JS代码放在head和body中的区别分析
Dec 01 Javascript
jQuery获取动态生成的元素示例
Jun 15 Javascript
jQuery中animate用法实例分析
Mar 09 Javascript
微信JSSDK上传图片
Aug 23 Javascript
javascript中eval解析JSON字符串
Feb 27 Javascript
网页瀑布流布局jQuery实现代码
Oct 21 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
Mar 09 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
Aug 31 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
微信小程序纯文本实现@功能
Apr 08 Javascript
javascript实现左右缓动动画函数
Nov 25 Javascript
基于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
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
使用python 获取进程pid号的方法
2014/03/10 Python
python多线程抓取天涯帖子内容示例
2014/04/03 Python
python 使用pandas计算累积求和的方法
2019/02/08 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
汽车专业求职信
2014/06/05 职场文书
导游欢迎词范文
2015/01/23 职场文书
法院个人总结
2015/03/03 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
工伤认定行政答辩状
2015/05/22 职场文书
父亲去世追悼词
2015/06/23 职场文书
二胎满月酒致辞
2015/07/29 职场文书