【写在前面的话】网站上很多用各种插件,比如依赖bootstrap的bootstrap-select插件等。虽然这些框架可以实现很多功能,但因为在实际项目中,可能只会用到其中的某个功能,若是一概引入,会导致整个js加载过于笨重。比如前面提到的bootstrap-select插件,在不压缩的情况下,达到300多k。因此,为了实现一个可填写的下拉框有点得不偿失。

基于这种原因,于是私下用jquery写了一个比较简单的多选下拉可填写组合框。
container{
margin: 20px auto;
padding:0 15px;
width: 50%;
height:300px;
box-sizing: border-box;
}
.text-container{
display: inline-block;
float:left;
width: 15%;
height: 32px;
line-height: 32px;
box-sizing: border-box;
}
.selectContainer{
width: 70%;
height:200px;
float:left;
position: relative;
padding:0;
margin:0;
box-sizing: border-box;
}
.selectedContent{
width:85%;
height: 25px;
float:left;
}
.dropDown-toggle{
width:14%;
height:31px;
line-height: 31px;
text-align: center;
border: 1px solid silver;
border-left:none;
float:left;
padding:0;
margin:0;
box-sizing: border-box;
cursor: pointer;
}
.dropDown-menu{
margin:0;
padding:0 15px 10px;
width:100%;
border:1px solid silver;
border-top: none;
box-sizing: border-box;
list-style: none;
position: absolute;
top:31px;
right:0;
}
.items{
margin-top:8px;
padding: 2px;
cursor: pointer;
}
.items:hover{
background: #ddd;
}
.isSelectedText{
display: inline-block;
width:90%;
}
.dsn{
display: none;
}
<div class="container">
<span class="text-container">最爱的水果</span>
<div class="multipleSelect selectContainer">
<input type="text" class="selectedContent">
<div class="dropDown-toggle">选择</div>
<ul class="dropDown-menu dsn">
<li class="items">
<span class="isSelectedText">苹果</span>
<span class="isSelected"><input type="checkbox"></span>
</li>
<li class="items">
<span class="isSelectedText">梨</span>
<span class="isSelected"><input type="checkbox"></span>
</li>
<li class="items">
<span class="isSelectedText">橘子</span>
<span class="isSelected"><input type="checkbox"></span>
</li>
<li style="text-align: right">
<button type="button" class="confirmSelect">确定</button>
</li>
</ul>
</div>
</div>
$('.isSelected input[type=checkbox]').on('click', function(){
var selectedItems = $(this).parents('.dropDown-menu').prevAll('.selectedContent').val().split(' ');
var thisItem = $(this).parent().prev().text();
var isExisted = 0;
var isChecked = $(this).is(':checked');
if(isChecked){
selectedItems.map(function(item, index){
if(item === thisItem){
isExisted++
}
});
if(!isExisted){
selectedItems.push(thisItem)
}
}
else{
selectedItems.map(function(item, index){
if(item === thisItem){
selectedItems.splice(index, 1);
}
});
}
$(this).parents('.dropDown-menu').prevAll('.selectedContent').val(selectedItems.join(' '));
})
$('.confirmSelect').on('click', function(){
$(this).parents('.dropDown-menu').addClass('dsn');
})
$('.dropDown-toggle').on('click', function(){
$(this).next().toggleClass('dsn')
});
由于本组件中使用了数组的map方法,可能此方法在ie中不能兼容。由于鄙人电脑ie无法打开,用360浏览器测试后同样可是正常使用。
# jquery可输入多选下拉组合框
# jquery
# 下拉组合框
# jQuery实现下拉框多选 jquery-multiselect 的实例代码
# 基于jQuery下拉选择框插件支持单选多选功能代码
# jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
# 自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
# 一个简单的jquery的多选下拉框(自写)
# 利用Jquery实现可多选的下拉框
# Jquery多选下拉列表插件jquery multiselect功能介绍及使用
# jquery multiSelect 多选下拉框
# jQuery EasyUI API 中文文档 - ComboBox组合框
# 只会
# 得不偿失
# 写了
# 正常使用
# 可以实现
# 多选
# 无法打开
# 上很
# 情况下
# 加载
# 使用了
# 下拉框
# 写在前面
# 在实际
# border
# sizing
# text
# block
# inline
# display
相关文章:
家庭建站与云服务器建站,如何选择更优?
建站之星如何修改网站生成路径?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
建站主机选虚拟主机还是云服务器更好?
css网站制作参考文献有哪些,易聊怎么注册?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
北京的网站制作公司有哪些,哪个视频网站最好?
如何快速搭建FTP站点实现文件共享?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
建站之星伪静态规则如何正确配置?
如何在建站之星网店版论坛获取技术支持?
高端企业智能建站程序:SEO优化与响应式模板定制开发
安云自助建站系统如何快速提升SEO排名?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何在IIS中配置站点IP、端口及主机头?
如何在阿里云部署织梦网站?
成都网站制作报价公司,成都工业用气开户费用?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
如何在IIS中新建站点并配置端口与物理路径?
如何在局域网内绑定自建网站域名?
如何快速查询域名建站关键信息?
北京专业网站制作设计师招聘,北京白云观官方网站?
如何快速打造个性化非模板自助建站?
家具网站制作软件,家具厂怎么跑业务?
如何获取PHP WAP自助建站系统源码?
Bpmn 2.0的XML文件怎么画流程图
制作营销网站公司,淘特是干什么用的?
如何通过虚拟主机快速搭建个人网站?
历史网站制作软件,华为如何找回被删除的网站?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
免费ppt制作网站,有没有值得推荐的免费PPT网站?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
如何自定义建站之星网站的导航菜单样式?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
香港服务器WordPress建站指南:SEO优化与高效部署策略
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
如何在景安云服务器上绑定域名并配置虚拟主机?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
教学论文网站制作软件有哪些,写论文用什么软件
?
开心动漫网站制作软件下载,十分开心动画为何停播?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
如何快速使用云服务器搭建个人网站?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
如何选择域名并搭建高效网站?
建站之星如何配置系统实现高效建站?
Python路径拼接规范_跨平台处理说明【指导】
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
网页设计网站制作软件,microsoft office哪个可以创建网页?
网站制作模板下载什么软件,ppt模板免费下载网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。