可选择可编辑输入的下拉框功能模拟的实现

11,718次阅读
3 条评论

共计 2668 个字符,预计需要花费 7 分钟才能阅读完成。

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

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

下面是志文工作室在一个工作项目需求中实现的相关代码示例,在此列出仅供参考,欢迎指正。

 

<!DOCTYPE html>
<html>
<head>
<title>可编辑可选择的下拉框|志文工作室-lzw.me</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>

效果查看:http://lzw.me/pages/demo/input_and_select_effect.html

http://lzw.me/pages/demo/input_and_select_effect.html

正文完
 0
任侠
版权声明:本站原创文章,由 任侠 于2013-08-06发表,共计2668字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(3 条评论)
验证码
Coder 评论达人 LV.1
2013-09-14 00:58:16 回复
TheWorld Browser TheWorld Browser Windows 7 Windows 7

不错,学习学习

 Windows  Chrome  内网IP
萝卜头头 评论达人 LV.1
2013-08-06 20:41:43 回复
Google Chrome 28.0.1500.95 Google Chrome 28.0.1500.95 Windows XP Windows XP

这个很使用,我在很多地方看到过这种效果,但具体代码第一次看到哦

 Windows  Chrome  内网IP
    2013-08-07 10:51:10 回复
    Google Chrome 28.0.1500.95 Google Chrome 28.0.1500.95 Windows 7 x64 Edition Windows 7 x64 Edition

    @萝卜头头 是很常用吧~ :razz:
    应该大都是利用这样的模拟效果,有的甚至是用div+css及js 来伪装的~

     Windows  Chrome  内网IP