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 新浪网易的评论块制作
Jul 01 Javascript
JS替换字符串中字符即替换全部而不是第一个
Jun 04 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
Jan 20 Javascript
javascript中Function类型详解
Apr 28 Javascript
jQuery表单对象属性过滤选择器实例详解
Sep 13 Javascript
JavaScript的事件机制详解
Jan 17 Javascript
新闻上下滚动jquery 超简洁(必看篇)
Jan 21 Javascript
Angularjs中使用轮播图指令swiper
May 30 Javascript
JavaScript之Canvas_动力节点Java学院整理
Jul 04 Javascript
switchery按钮的使用方法
Dec 18 Javascript
Vue常用指令详解分析
Aug 19 Javascript
使用layer弹窗,制作编辑User信息页面的方法
Sep 27 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
Dedecms常用函数解析
2008/02/01 PHP
Ajax PHP简单入门教程代码
2008/04/25 PHP
phpMyadmin 用户权限中英对照
2010/04/02 PHP
php 判断字符串中是否包含html标签
2014/02/17 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
axios实现简单文件上传功能
2019/09/25 Javascript
原生JS实现汇率转换功能代码实例
2020/05/13 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
python函数局部变量用法实例分析
2015/08/04 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
党政领导班子民主生活会整改措施
2014/09/18 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
高中体育课教学反思
2016/02/16 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python