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 相关文章推荐
推荐:极酷右键菜单
Nov 29 Javascript
javascript+mapbar实现地图定位
Apr 09 Javascript
JQuery文本框高亮显示插件代码
Apr 02 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
Apr 26 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
Jun 24 Javascript
canvas实现图像截取功能
Feb 06 Javascript
JavaScript 基础表单验证示例(纯Js实现)
Jul 20 Javascript
原生JS实现日历组件的示例代码
Sep 22 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 Javascript
vue项目中使用vue-i18n报错的解决方法
Jan 13 Javascript
详解新手使用vue-router传参时注意事项
Jun 06 Javascript
es6函数之尾递归用法实例分析
Apr 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
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
PHP 正则表达式小结
2015/02/12 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
Augularjs-起步详解
2016/07/08 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
Angularjs中使用layDate日期控件示例
2017/01/11 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
在vue中安装使用vux的教程详解
2018/09/16 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
python下PyGame的下载与安装过程及遇到问题
2019/08/04 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
意外伤害赔偿协议书范本
2014/09/28 职场文书
卖房授权委托书样本
2014/10/05 职场文书
交通事故调解协议书
2015/05/20 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers