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

求助:使用JavaScript实现下拉选择框的显示与隐藏

勾选复选框控制下拉框显示/隐藏失效的修复方案

你的代码无法生效主要有三个核心问题,以下是具体排查和修复步骤:

1. 必须引入jQuery库

你写的JS代码用了jQuery的$语法,但HTML里没有引入jQuery框架,这是导致脚本完全不运行的关键。需要在自定义脚本之前引入jQuery,比如用CDN链接:

<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="{% static 'website/js/bkingscpt.js' %}"></script>

如果是本地项目,也可以替换成你本地存放的jQuery文件路径。

2. 修复HTML语法错误

你的HTML存在几处语法问题,会导致浏览器解析DOM异常:

  • 第一个标签写法错误:<div h2 class="display-6 text-uppercase mb-3"> 应该调整为 <h2 class="display-6 text-uppercase mb-3">(或者包裹在div里:<div><h2>...</h2></div>)
  • 多个复选框标签未闭合:window_cleaning、power_wash、curb_address这三个<input>标签都缺少闭合的/>,比如修正后:
    <input type="checkbox" id="window_cleaning" name="window_cleaning" value="window_cleaning"/>
    
    另外两个复选框也需要补上闭合标签。

3. 优化JS代码(更简洁高效)

原代码逻辑没问题,但可以简化写法,而且建议直接隐藏整个下拉容器(而非仅隐藏select),逻辑更合理:

// 初始状态隐藏下拉容器
$('#dropdownHolder').hide();

// 监听复选框状态变化,切换容器显示/隐藏
$('#car_wash').on('change', function() {
  $('#dropdownHolder').toggle(this.checked);
});

toggle()方法会根据传入的布尔值(这里是复选框的checked状态)自动切换元素的显示/隐藏,比if-else写法更简洁。


修复后的完整代码示例

HTML代码

<div>
  <h2 class="display-6 text-uppercase mb-3">Service</h2>
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
  <script src="{% static 'website/js/bkingscpt.js' %}"></script>
  <span class="question">Select Service(s):</span><br>
  <input type="checkbox" id="car_wash" name="car_wash" value="car_wash"/>
  <label for="car_wash"> Car Wash</label><br>
  <input type="checkbox" id="window_cleaning" name="window_cleaning" value="window_cleaning"/>
  <label for="window_cleaning"> Window Cleaning</label><br>
  <input type="checkbox" id="power_wash" name="power_wash" value="Power Wash"/>
  <label for="power_wash"> Powerwashing</label><br>
  <input type="checkbox" id="curb_address" name="curb_address" value="curb_address"/>
  <label for="curb_address"> Curb Address Painting</label><br>
</div>
<div id="dropdownHolder" class="col-lg-12 mb-3">
  <select id="carwash_type" name="carwash_type" class="form-select form-control" aria-label="Default select example">
    <option selected> Car Wash Type</option>
    <option value="1">Express Interior</option>
    <option value="2">Express Exterior</option>
    <option value="3">Full Service Wash</option>
  </select>
</div>

JavaScript代码

$('#dropdownHolder').hide();
$('#car_wash').on('change', function() {
  $('#dropdownHolder').toggle(this.checked);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 08:31:12