You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多个复选框控制单个select启用禁用的jQuery实现问题求助

错误原因
  • $(":checkbox").prop("checked")只会返回匹配到的第一个复选框的选中状态,所以只有第一个勾选框的操作会影响下拉选择器状态,其余复选框的状态变化不会被识别。
  • 你需要判断所有复选框中是否存在至少一个被选中的状态,应该使用is(":checked")方法,该方法只要匹配到任意一个符合规则的元素就会返回true。
修正后的实现代码
$(document).ready(function(){
  var enable_sel = function(){
    $("#pizza_kind").prop("disabled", !$(":checkbox").is(":checked"));
  };
  enable_sel();
  $(":checkbox").change(enable_sel);
});

可选优化:如果页面存在其他无关复选框,可给当前三个关联复选框添加统一类名(例如class="pizza-check"),将代码中$(":checkbox")替换为$(".pizza-check")即可避免逻辑串扰。

修正后即可实现预期效果:初始状态如果没有复选框被勾选,下拉选择器默认禁用;只要任意一个复选框被勾选,下拉选择器自动启用;所有复选框取消勾选后,下拉选择器恢复禁用。

内容的提问来源于stack exchange,提问作者Eduardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 22:45:04