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 相关文章推荐
javascript 常用代码技巧大收集
Feb 25 Javascript
JS 用6N±1法求素数 实例教程
Oct 20 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
Oct 14 Javascript
jQuery .tmpl(), .template()学习资料小结
Jul 18 Javascript
js中将URL中的参数提取出来作为对象的实现代码
Aug 16 Javascript
js 自定义个性下拉选择框示例
Aug 20 Javascript
jquery按回车提交数据的代码示例
Nov 05 Javascript
原生js获取元素样式的简单方法
Aug 06 Javascript
关于foreach循环中遇到的问题小结
May 08 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
Nov 05 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
Apr 11 Javascript
Layui动态生成select下拉选择框不显示的解决方法
Sep 24 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
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
基于JQuery+PHP编写砸金蛋中奖程序
2015/09/08 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
2016/08/03 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
Vue3.x源码调试的实现方法
2019/10/13 Javascript
js实现小星星游戏
2020/03/23 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python程序设计入门(2)变量类型简介
2014/06/16 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
python编程实现归并排序
2017/04/14 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
介绍一下内联、左联、右联
2013/12/31 面试题
九年级物理教学反思
2014/01/29 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
未婚证明范本
2015/06/15 职场文书
新闻通讯稿范文
2015/07/22 职场文书
放飞理想主题班会
2015/08/14 职场文书
Nginx内网单机反向代理的实现
2021/11/07 Servers
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL