javascript实现的一个带下拉框功能的文本框


Posted in Javascript onMay 08, 2014

有时我们需要一个可选的下拉框来选取内容,但是但是又有可以自定义输入的需求。对于这种需求,大部分网站使用的都是一个下拉框和一个 input text ,并列或分行给出选择。那么,我们希望它看上去像一个可以输入也可以选择的下拉框,那该如何做呢?

其实我们可以通过 css position 定位及少许的 javascript 代码,模拟出来这种效果。

<!DOCTYPE html>
<html>
<head>
 <title>可编辑可选择的下拉框</title>
 <meta charset="utf-8">
 <style>
  .list-name-input{
   color: #333;
   font-family: tahoma, 'Microsoft YaHei', 'Segoe UI', Arial, 'Microsoft Yahei', Simsun, sans-serif;
   font-size: 15px;
   font-weight: bold;
   height: 50px;
   margin: 0px;
   padding: 0px;
   position: relative;
   width: 530px;
  }
  .list-name-for-select{
   border: 0;
   color: #555;
   height: 20px;
   lighting-color: rgb(255, 255, 255);
   line-height: 20px;
   margin:0 0 10px 0;
   outline-color: #555;
   outline-offset: 0px;
   outline-style: none;
   outline-width: 0px;
   padding: 4px 6px;
   position: absolute;
   top: 1px;
   left: 3px;
   vertical-align: middle;
   width: 486px;
  }
  .list-name-input-for-select:focus{
   border: 0;
   border-radius: 0;
  }
  .list-select{
   background-color: #FFF;
   border:1px #ccc solid;
   border-radius: 4px;
   color: #555;
   cursor: pointer;
   height: 30px;
   left: 0px;
   margin:0 0 10px 0;
   padding: 4px 6px;
   position: absolute;
   top: 0px;
   vertical-align: middle;
   white-space: pre;
   width: 530px;
  }
 </style>
</head>
<body>
 <div id="list-name-input" class="list-name-input">
     <select type="text" class="list-select" id="list-select">
         <option value="">
             新建
         </option>
         <option value="0">
             10-NGCFG-update-1000
         </option>
         <option value="1">
             11-NGCFG-update-1000
         </option>
         <option value="2">
             111
         </option>
         <option value="3">
             12-NGCFG-update-1000
         </option>
         <option value="4">
             13-NGCFG-update-1000
         </option>
         <option value="5">
             14-NGCFG-update-1000
         </option>
         <option value="6">
             15-NGCFG-update-1000
         </option>
         <option value="7">
             16-NGCFG-update-1000
         </option>
         <option value="8">
             17-NGCFG-update-1000
         </option>
         <option value="9">
             18-NGCFG-update-1257
         </option>
         <option value="10">
             2-NGCFG-update-100
         </option>
         <option value="11">
             3-NGCFG-update-150
         </option>
         <option value="12">
             4-NGCFG-update-200
         </option>
         <option value="13">
             5-NGCG-update-250
         </option>
         <option value="14">
             6-NGCFG-update-418
         </option>
         <option value="15">
             7-NGCFG-update-500
         </option>
         <option value="16">
             8-NGCFG-update-1000
         </option>
         <option value="17">
             9-NGCFG-update-1000
         </option>
         <option value="18">
             @ALL
         </option>
         <option value="19">
             @CNC-BJ-4
         </option>
         <option value="20">
             CNC-BJ--测试
         </option>
         <option value="21">
             test
         </option>
     </select>
     <input type="text" class="name item-width list-name-for-select" id="list-name-for-select">
 </div>
 <script>
  var listName = document.getElementById('list-name-for-select');
  var listSelect = document.getElementById('list-select').onchange = function(e){
   console.log(this)
   if(this.value){
    listName.value = this.value + ' | ' + this.options[this.selectedIndex].text;
   }else{
    listName.value = ''
   }
  };
 </script>
</body>
</html>
Javascript 相关文章推荐
Jquery 弹出层插件实现代码
Oct 24 Javascript
基于JQuery的抓取博客园首页RSS的代码
Dec 01 Javascript
event.currentTarget与event.target的区别介绍
Dec 31 Javascript
jQuery 获取兄弟元素的几种不错方法
May 23 Javascript
javascript获取当前的时间戳的方法汇总
Jul 26 Javascript
jquery实现全屏滚动
Dec 28 Javascript
利用JS轻松实现获取表单数据
Dec 06 Javascript
完美实现js选项卡切换效果(一)
Mar 08 Javascript
关于JS与jQuery中的文档加载问题
Aug 22 jQuery
vue-cli webpack 引入jquery的方法
Jan 10 jQuery
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
使用Webpack 搭建 Vue3 开发环境过程详解
Jul 28 Javascript
javascript解析json数据的3种方式
May 08 #Javascript
Javascript异步编程模型Promise模式详细介绍
May 08 #Javascript
JS获取随机数函数可自定义最小值最大值
May 08 #Javascript
js数组操作常用方法
May 08 #Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
May 08 #Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
May 08 #Javascript
javascript操作excel生成报表示例
May 08 #Javascript
You might like
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
python实现识别相似图片小结
2016/02/22 Python
基于Python的接口测试框架实例
2016/11/04 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
Python SVM(支持向量机)实现方法完整示例
2018/06/19 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
python中的数据结构比较
2019/05/13 Python
python pandas生成时间列表
2019/06/29 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
C有"按引用传递"吗
2016/09/06 面试题
大学生毕业自我鉴定范文
2014/02/03 职场文书
优秀老师事迹材料
2014/02/05 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
销售经理工作检讨书
2015/02/19 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
八年级作文之友谊
2019/12/02 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang