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 相关文章推荐
JS 控制CSS样式表
Aug 20 Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
Nov 19 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
Mar 01 Javascript
简洁Ajax函数处理(示例代码)
Nov 15 Javascript
jquery组件使用中遇到的问题整理及解决
Feb 21 Javascript
JQuery给元素绑定click事件多次执行的解决方法
May 29 Javascript
JavaScript闭包函数访问外部变量的方法
Aug 27 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
jQuery实现本地预览上传图片功能
Jan 08 Javascript
Bootstrap table使用方法汇总
Nov 17 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
Dec 21 Javascript
vue使用video插件vue-video-player详解
Oct 23 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
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
PHP系统流量分析的程序
2006/10/09 PHP
PHP 中文乱码解决办法总结分析
2009/07/30 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
js location.replace与location.reload的区别
2010/09/08 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
详解用python写一个抽奖程序
2019/05/10 Python
Django ValuesQuerySet转json方式
2020/03/16 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
运动会铅球比赛加油稿
2014/09/26 职场文书
司机个人年终总结
2015/03/03 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript