用jQuery实现可输入多选下拉组合框实例代码
发布时间 - 2026-01-10 22:36:18 点击率:次【写在前面的话】网站上很多用各种插件,比如依赖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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel distinct去重查询_Laravel Eloquent去重方法
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
Laravel集合Collection怎么用_Laravel集合常用函数详解
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
html5的keygen标签为什么废弃_替代方案说明【解答】
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
bootstrap日历插件datetimepicker使用方法
Laravel如何处理异常和错误?(Handler示例)
googleplay官方入口在哪里_Google Play官方商店快速入口指南
长沙企业网站制作哪家好,长沙水业集团官方网站?
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何快速搭建FTP站点实现文件共享?
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
如何用西部建站助手快速创建专业网站?
公司网站制作价格怎么算,公司办个官网需要多少钱?
C++时间戳转换成日期时间的步骤和示例代码
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
动图在线制作网站有哪些,滑动动图图集怎么做?
Laravel如何集成Inertia.js与Vue/React?(安装配置)
如何在服务器上配置二级域名建站?
昵图网官网入口 昵图网素材平台官方入口
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
实现点击下箭头变上箭头来回切换的两种方法【推荐】
JavaScript如何实现错误处理_try...catch如何捕获异常?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
JavaScript数据类型有哪些_如何准确判断一个变量的类型
phpredis提高消息队列的实时性方法(推荐)
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
微信小程序 scroll-view组件实现列表页实例代码
node.js报错:Cannot find module 'ejs'的解决办法
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
轻松掌握MySQL函数中的last_insert_id()
Laravel如何生成API文档?(Swagger/OpenAPI教程)
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
Laravel如何优化应用性能?(缓存和优化命令)
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
中山网站推广排名,中山信息港登录入口?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
如何做网站制作流程,*游戏网站怎么搭建?
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
零服务器AI建站解决方案:快速部署与云端平台低成本实践
魔方云NAT建站如何实现端口转发?
iOS验证手机号的正则表达式
网站建设要注意的标准 促进网站用户好感度!

