本文讲解如何使用 jquery 实现复选框(checkbox)与 select 下拉框的双向绑定:当 select 选中 “yes” 或 “maybe” 时自动勾选复选框;当复选框被取消勾选时,select 自动重置为 `value="null"` 的空白选项,且不破坏原有选项文本。
在表单交互开发中,常需让多个控件保持状态一致。本例中,
⚠️ 原代码中的核心问题在于误用了 .prop() 和 .text() 方法:
✅ 正确做法是:仅操作 value 和 selected 属性,绝不修改 。以下是优化后的完整实现:
Test 1:
Test 2:
$(function() {
const $select = $('#select');
const $checkbox = $('#
checkbox');
// select 变化时:同步 checkbox 状态
$select.on('change', function() {
const val = $select.val();
$checkbox.prop('checked', ['Yes', 'Maybe'].includes(val));
});
// checkbox 变化时:仅当取消勾选,才重置 select 到 null 项
$checkbox.on('change', function() {
if (!$(this).is(':checked')) {
$select.find('option[value="null"]').prop('selected', true);
}
});
});? 关键要点总结:
此方案轻量、健壮、语义清晰,适用于任何需要 select 与 checkbox 双向映射的业务场景(如“启用高级选项”开关 + 配置粒度选择)。