本文详解如何使用 jquery 实现 `
在表单交互开发中,常需将不同控件的状态进行逻辑耦合。本例要求:
原始代码中存在多个关键误用:
使用 change 事件监听双方变更,并通过 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);
}
});
});if ($(this).is(':checked') && $select.val() === 'null') {
$select.val('Yes').trigger('change'); // 触发联动
}通过以上实现,即可达成稳定、可逆、无副作用的双向镜像控制,彻底解决选项文本丢失问题。