下拉框

  1 <!DOCTYPE html>
  2 <html>
  3
  4     <head>
  5         <meta charset="UTF-8">
  6         <title></title>
  7         <style>
  8             li:hover {
  9                 background: gray;
 10             }
 11
 12             .gray {
 13                 background: gray;
 14             }
 15         </style>
 16     </head>
 17
 18     <body>
 19
 20         <!--
 21 当input获取焦点,
 22 1、弹出建议条目。 OK
 23 2、键盘上下选取   OK
 24 3、回车可以开始搜索 OK
 25 4、录入你想要的、展示:包含你搜索词的信息几条。 ok
 26 5、热搜词:两个超级链接
 27 获取焦点消失,失去焦点出现,超级链接。
 28 渐变效果..
 29
 30 -->
 31         美观性:
 32         <form action="a.php">
 33             <input autocomplete="off" type="text" name="str" />
 34             <ul id="mydata">
 35
 36             </ul>
 37         </form>
 38
 39         <script>
 40             var myinput = document.querySelector("input")
 41             var mydata = document.querySelector("#mydata")
 42             var data = [‘小米6‘, ‘小米5‘, ‘红米3‘, ‘手环‘, ‘手铐‘, ‘移动电影‘]
 43             var lis = "";
 44
 45             function showList() {
 46                 var str = ""
 47                 for(var i = 0; i < data.length; i++) {
 48                     str += "<li>" + data[i] + "</li>";
 49                 }
 50
 51                 mydata.innerHTML = str;
 52
 53                 //给li绑定单击事件
 54                 lis = document.querySelectorAll("#mydata li");
 55                 console.log(lis)
 56                 for(var i = 0; i < lis.length; i++) {
 57                     lis[i].onclick = function() {
 58                         myinput.value = this.innerText;
 59                         //myinput.parentNode.submit(); 表单自动提交
 60
 61                     }
 62                 }
 63
 64             }
 65
 66             myinput.onfocus = showList;
 67
 68             //有能力获取键盘事件?
 69             var k = -1;
 70             myinput.onkeydown = function(ev) {
 71
 72                 if(ev.keyCode == 40) {
 73                     ++k;
 74
 75                     k = k >= lis.length - 1 ? lis.length - 1 : k;
 76                     //去掉非当前的背景class.
 77                     (k >= 1) ? (lis[k - 1].className = "") : null
 78                     if(k == 0) {
 79                         lis[lis.length - 1].className = ""
 80                     }
 81                     //给当前li添加背景
 82                     lis[k].className = "gray";
 83                     myinput.value = lis[k].innerText;
 84
 85                 } else if(ev.keyCode == 38) {
 86                     k = (k <= 0) ? 0 : --k;
 87
 88                     if(k < (lis.length - 1)) {
 89                         lis[k + 1].className = "";
 90                     }
 91
 92                     lis[k].className = "gray";
 93                     myinput.value = lis[k].innerText;
 94
 95                 }
 96
 97             }
 98
 99             //获取用户输入显示相关内容
100             myinput.oninput = showList2;
101
102             function showList2(ev) {
103                 //获取用户输入内容
104                 var inputValue = this.value;
105
106                 var str = ""
107                 for(var i = 0; i < data.length; i++) {
108                     if(data[i].indexOf(inputValue) > -1) {
109                         str += "<li>" + data[i] + "</li>";
110                     }
111                 }
112                 mydata.innerHTML = str;
113
114                 //给li绑定单击事件
115                 lis = document.querySelectorAll("#mydata li");
116                 console.log(lis)
117                 for(var i = 0; i < lis.length; i++) {
118                     lis[i].onclick = function() {
119                         myinput.value = this.innerText;
120
121                     }
122                 }
123
124             }
125         </script>
126
127     </body>
128
129 </html>
时间: 2024-10-24 02:37:50

下拉框的相关文章

读取mysql中的特定列值放入页面的下拉框中

1.使用的技术:JSP,Spring JDBC(Mapper) 2.代码 2.1 接口 public interface IMeetingRoomDao { public List<Mrcap> selectCap(); public List<Mrfloor> selectFloor(); } 2.2 实现类 @Override public List<Mrcap> selectCap() { List<Mrcap> caplist = new Array

自建List&lt;&gt;绑定ComboBox下拉框实现省市联动

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace _04省市联动 { public partial cl

【峰回路转】Excel技巧百例 06.设置下拉框

如何才能在Excel中完成一个如下图所示的下拉框呢? 1.首先鼠标选中B2单元格 2.点击上方的"数据"中的"数据验证"下方的小三角,然后点击浮层中的第一项:数据验证 3.在弹出的窗口中,选择"序列",在来源中输入:请选择,优,良,中,差,点击[确认]. 这样一个下拉框,我们就做好了. 版权声明:本文为博主原创文章,未经博主允许不得转载.

struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input

原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($("#textValue").val() == "") {3                 $("#errortip").html("<font color='#FF0000'>请输入查询内容</font>")

选择下拉框是如何取选项的值?

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>select</title> <script type="text/javascript"> </script> </head> <body id="body&

vue.js实现单选框、复选框和下拉框

Vue.js可以很方便的实现数据双向绑定,所以在处理表单,人机交互方面具有很大的优势.下边以单选框.复选框和下拉框为例介绍他们在HTML和Vue.js中的具体实现方式. 一.单选框 在传统的HTML中实现单选框的方法如下: <div id="app"> <input type="radio" name="gender" value="man" id="man"/><label

jQuery之双下拉框

双下拉框要实现的效果,实际上就是左边下拉选择框里的内容,可以添加到右边,而右边同理.写了个简单的例子,来说明一下. 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 <!DOCTYPEhtml> <html> <head> <title>jq

angularjs下拉框空白

搜索angularjs下拉框空白,可以出现很多解决方案,但是对于静态字段来说,网上目前还没有找到解决方案,如下: 1 <select class="form-control" ng-model="UserState" 2 ng-init="UserState=0"> 3 <option value="-1">选择状态</option> 4 <option value="0&q

select下拉框的样式在浏览器上的兼容问题

最近项目中遇到了自定义下拉框的默认样式在谷歌,火狐,IE上显示不同的问题. 左侧图片就是重写的样式,下拉框的右侧三角是选用的bootstrap里面的图片,通过绝对定位放过去的. css: select { /*Chrome同Firefox与IE里面的右侧三角显示的样式不同*/ border: solid 1px #ddd; /*将默认的select选择框样式清除*/ appearance:none; -moz-appearance:none; -webkit-appearance:none; p

ajax技术实现登录判断用户名是否重复以及利用xml实现二级下拉框联动

今天学了ajax技术,特地在此写下来作为复习. 一.什么是ajax? 客户端(特指PC浏览器)与服务器,可以在[不必刷新整个浏览器]的情况下,与服务器进行异步通讯的技术  即,AJAX是一个[局部刷新]的[异步]通讯技术, 说白了就是局部刷新. 二.ajax的原理如下图 附上ajax与服务器之间的几种状态,但 4是所有浏览器都支持的的 三.ajax包含的技术如下图 四.ajax开发步骤 步一:创建ajax对象,例如:ajax = createAjax(); 步二:开启异步对象:例如:ajax.o