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 相关文章推荐
javascript里绝对用的上的字符分割函数总结
Jul 31 Javascript
简单的分页代码js实现
May 17 Javascript
AngularJS入门教程之表格实例详解
Jul 27 Javascript
WEB前端实现裁剪上传图片功能
Oct 17 Javascript
vue.js实现备忘录功能的方法
Jul 10 Javascript
Angular2关于@angular/cli默认端口号配置的问题
Jul 15 Javascript
详解layui弹窗父子窗口之间传参数的方法
Jan 16 Javascript
教你如何用node连接redis的示例代码
Jul 12 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
Sep 18 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
Jan 25 Javascript
加速vue组件渲染之性能优化
Apr 09 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
Oct 02 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中的数组操作函数整理
2008/08/18 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
javascript运行机制之执行顺序理解
2020/08/03 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
2016/06/26 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
英文翻译的自我评价语句
2013/10/04 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
毕业大学生自荐信
2014/06/17 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
2014年班组工作总结
2014/11/20 职场文书
拾金不昧表扬稿
2015/01/16 职场文书