jQuery 实现级联下拉框:根据第一个选择项动态禁用第二个下拉框中的相同选项
发布时间 - 2026-01-13 00:00:00 点击率:次本文介绍如何使用 jquery 实现两个下拉框的联动控制——当用户在第一个下拉框中选择某项后,自动禁用第二个下拉框中值相同的选项,防止重复选择。
在表单设计中,常需确保多个下拉框(
以下是一个简洁、可复用的实现方案:
$('select.form-control').on('change', function() {
// 先重置所有 option 为启用状态(避免残留禁用)
$('select.form-control option').prop('disabled', false);
// 遍历每个 select,将其当前选中值作为“冲突值”,在其他 select 中禁用同 value 的 option
$('select.form-control').each(function() {
const selectedValue = this.value;
if (!selectedValue) return; // 忽略未选择(空值)的情况
// 在其余 select 中查找并禁用 value 相同的 option
$('select.form-control').not(this).find('option').filter(function() {
return this.value === selectedValue;
}).prop('disabled', true);
});
}).trigger('change'); // 初始化时执行一次,确保页面加载后状态同步✅ 关键要点说明:
- 使用 .not(this) 排除当前触发事件的下拉框,只影响其他下拉框;
- .filter() 精准匹配 value 属性(而非文本内容),确保数据一致性;
- .trigger('change') 在绑定后立即执行一次,使初始状态(如已有默认选中)也生效;
- 建议为参与联动的下拉框统一添加类名(如 form-control),便于选择器精准控制;
- 若存在多个下拉框(≥3个),该逻辑仍适用,会两两互斥,形成“所选值全局唯一”的约束。
⚠️ 注意事项:
- 确保 jQuery 已正确引入(推荐 2.1+ 或 3.x 版本);
- id 属性需唯一,示例中两个
- 禁用的
通过以上方法,即可实现轻量、健壮的双向值互斥控制,提升表单交互合理性与数据准确性。
# jquery
# select
# Filter
# 事件
# dom
# this
# 选择器
# 下拉框
# 多个
# 表单
# 框中
# 是一个
# 互斥
# 第一个
# 一人
# 已有
# 遍历
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
电商网站制作价格怎么算,网上拍卖流程以及规则?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
如何用已有域名快速搭建网站?
nodejs redis 发布订阅机制封装实现方法及实例代码
Android自定义控件实现温度旋转按钮效果
浅述节点的创建及常见功能的实现
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何制作一个表白网站视频,关于勇敢表白的小标题?
高性价比服务器租赁——企业级配置与24小时运维服务
晋江文学城电脑版官网 晋江文学城网页版直接进入
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
如何在阿里云购买域名并搭建网站?
Python高阶函数应用_函数作为参数说明【指导】
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
Mybatis 中的insertOrUpdate操作
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
JavaScript如何实现继承_有哪些常用方法
linux写shell需要注意的问题(必看)
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
如何快速生成高效建站系统源代码?
EditPlus中的正则表达式实战(6)
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
SQL查询语句优化的实用方法总结
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
Laravel如何使用Collections进行数据处理?(实用方法示例)
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
简历在线制作网站免费版,如何创建个人简历?
Swift中循环语句中的转移语句 break 和 continue
简历没回改:利用AI润色让你的文字更专业
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
*服务器网站为何频现安全漏洞?
javascript中的try catch异常捕获机制用法分析
Java类加载基本过程详细介绍
Laravel怎么在Controller之外的地方验证数据
如何用AI帮你把自己的生活经历写成一个有趣的故事?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
再谈Python中的字符串与字符编码(推荐)

