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 相关文章推荐
复制小说文本时出现的随机乱码的去除方法
Sep 07 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
Aug 06 Javascript
jquery中animate动画积累的解决方法
Oct 05 Javascript
js如何判断不同系统的浏览器类型
Oct 28 Javascript
jquery解析XML及获取XML节点名称的实现代码
May 18 Javascript
第一篇初识bootstrap
Jun 21 Javascript
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
javascript函数的节流[throttle]与防抖[debounce]
Nov 15 Javascript
对vux点击事件的优化详解
Aug 28 Javascript
javascript 易错知识点实例小结
Apr 25 Javascript
vue.js实现简单购物车功能
May 30 Javascript
jquery实现简易验证插件封装
Sep 13 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
PHP中for循环语句的几种变型
2006/11/26 PHP
php去除HTML标签实例
2013/11/06 PHP
php根据日期判断星座的函数分享
2014/02/13 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
JS的数组迭代方法
2015/02/05 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
一个php+js实时显示时间问题
2015/10/12 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
Python编程修改MP3文件名称的方法
2017/04/19 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
python实现一组典型数据格式转换
2018/12/15 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
秘书专业自荐信范文
2013/12/26 职场文书
养殖行业的创业计划书
2014/01/05 职场文书
大学生军训感想
2014/02/16 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
优秀求职信
2014/05/29 职场文书
利用python做数据拟合详情
2021/11/17 Python