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 Timing
Apr 21 Javascript
简明json介绍
Sep 28 Javascript
IE和Firefox下event事件杂谈
Dec 18 Javascript
jquery原理以及学习技巧介绍
Nov 11 Javascript
js性能优化技巧
Nov 29 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
Jan 20 Javascript
bootstrapValidator.min.js表单验证插件
Feb 09 Javascript
利用node.js如何创建子进程详解
Dec 09 Javascript
微信小程序倒计时功能实例代码
Jul 17 Javascript
Vue自定义弹窗指令的实现代码
Aug 13 Javascript
加快Vue项目的开发速度的方法
Dec 12 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
Oct 15 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
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
js表格分页实现代码
2009/09/18 Javascript
jquery 输入框数字限制插件
2009/11/10 Javascript
jQuery学习总结之元素的相对定位和选择器(持续更新)
2011/04/26 Javascript
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
js验证上传图片的方法
2015/05/12 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
python使用xslt提取网页数据的方法
2018/02/23 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
为数据库创建索引都需要注意些什么
2012/07/17 面试题
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
走群众路线剖析材料
2014/10/09 职场文书
财务统计员岗位职责
2015/04/14 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
python 如何在list中找Topk的数值和索引
2021/05/20 Python
MySQL一些常用高级SQL语句
2021/07/03 MySQL
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android