双向同步下拉选择框与复选框的值状态
发布时间 - 2026-01-05 00:00:00 点击率:次本文详解如何使用 jquery 实现 `
在表单交互开发中,常需让不同控件(如
- ✅ 当
- ✅ 当复选框被手动取消勾选 →
- ❌ 禁止操作:直接调用 .text("") 修改
正确实现方式(推荐)
使用 .change() 事件替代 .blur() 或 .click(),确保逻辑在用户真实完成选择/勾选后触发;利用 value 属性精准匹配,通过 .find('[value="null"]').prop('selected', true) 安全重置下拉框:
$(function() { const $select = $('#select'); const $checkbox = $('#checkbox'); // 下拉框变化 → 同步复选框状态 $select.on('change', function() { const val = $select.val(); $checkbox.prop('checked', ['Yes', 'Maybe'].includes(val)); }); // 复选框变化 → 同步下拉框状态(仅取消勾选时重置) $checkbox.on('change', function() { if (!$(this).is(':checked')) { $select.find('option[value="null"]').prop('selected', true); } }); });
HTML 结构要点(关键!)
⚠️ 注意事项:
- 不要使用 .text("") 或 .html("") 修改
- 避免 .prop("null")、.prop("Yes") 等无效写法(prop() 是读写 DOM 属性,不是设置值);
- 使用 value 属性定位选项(如 [value="null"]),而非依赖索引或文本内容,确保健壮性;
- 优先监听 change 事件(语义明确、兼容性好),避免 blur(可能未真正提交)或 click(在 checkbox 上易触发多次);
- 单个 $(function(){...}) 包裹全部初始化逻辑,提升可维护性。
总结
该方案以属性驱动(value)和事件解耦(change)为核心,杜绝 DOM 文本污染,确保下拉选项始终完整、可读、可交互。适用于任何需要“开关式”控制多选一场景的表单联动需求,具备良好的扩展性与稳定性。
# jquery
# html
# NULL
# select
# checkbox
# function
# 事件
# dom
# input
# ui
# 复选框
# 勾选
# 下拉框
# 而非
# 表单
# 这会
# 适用于
# 镜像
# 如何使用
# 性好
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
个人网站制作流程图片大全,个人网站如何注销?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何快速选择适合个人网站的云服务器配置?
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
网站制作软件有哪些,制图软件有哪些?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
node.js报错:Cannot find module 'ejs'的解决办法
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
音乐网站服务器如何优化API响应速度?
javascript中的try catch异常捕获机制用法分析
HTML 中动态设置元素 name 属性的正确语法详解
如何快速搭建自助建站会员专属系统?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
怎样使用JSON进行数据交换_它有什么限制
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
html如何与html链接_实现多个HTML页面互相链接【互相】
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Laravel Session怎么存储_Laravel Session驱动配置详解
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
Java解压缩zip - 解压缩多个文件或文件夹实例
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
详解jQuery停止动画——stop()方法的使用
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
Laravel如何实现本地化和多语言支持?(i18n教程)
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
javascript中闭包概念与用法深入理解
如何撰写建站申请书?关键要点有哪些?
Laravel集合Collection怎么用_Laravel集合常用函数详解
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
昵图网官网入口 昵图网素材平台官方入口
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
如何用VPS主机快速搭建个人网站?
php结合redis实现高并发下的抢购、秒杀功能的实例
如何获取上海专业网站定制建站电话?
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
Linux网络带宽限制_tc配置实践解析【教程】
Windows Hello人脸识别突然无法使用


n() {
const $select = $('#select');
const $checkbox = $('#checkbox');
// 下拉框变化 → 同步复选框状态
$select.on('change', function() {
const val = $select.val();
$checkbox.prop('checked', ['Yes', 'Maybe'].includes(val));
});
// 复选框变化 → 同步下拉框状态(仅取消勾选时重置)
$checkbox.on('change', function() {
if (!$(this).is(':checked')) {
$select.find('option[value="null"]').prop('selected', true);
}
});
});