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 相关文章推荐
firefox和IE系列的相关区别整理 以备后用
Dec 28 Javascript
window.onbeforeunload方法在IE下无法正常工作的解决办法
Jan 23 Javascript
『jQuery』名称冲突使用noConflict方法解决
Apr 22 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
May 31 Javascript
JS画5角星方法介绍
Sep 17 Javascript
Jquery 实现table样式的设定
Jan 28 Javascript
jQuery实现图片向左向右切换效果的简单实例
May 18 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
May 26 Javascript
js+html5生成自动排列对话框实例
Oct 09 Javascript
原生JS实现的跳一跳小游戏完整实例
Jan 27 Javascript
React实现阿里云OSS上传文件的示例
Aug 10 Javascript
token 机制和实现方式
Dec 15 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
php开启openssl的方法
2014/05/15 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
2015/12/10 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
微信小程序picker组件下拉框选择input输入框的实例
2017/09/20 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
师范生自荐信
2013/10/27 职场文书
英文自荐信格式
2013/11/28 职场文书
生产总经理岗位职责
2013/12/19 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
离婚协议书范文2014
2014/10/16 职场文书
会计试用期自我评价
2015/03/10 职场文书