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

如何使用jQuery实现勾选复选框时显示指定文本框

实现复选框控制文本框显示/隐藏的jQuery方案

没问题,这里有几种简洁可靠的jQuery方法来实现你要的功能——勾选permit复选框时显示short_code文本框,取消勾选则隐藏它:

首先先确认你的原始HTML结构:

<input type="checkbox" id="permit"> 
<input type="text" class="form-control" placeholder="Enter Short Code" name="short_code" id="short_code" autocomplete="off" style="display: none;">

方法1:最简洁的toggle()实现

这是最推荐的写法,利用toggle()方法自动根据复选框状态切换元素可见性:

$(document).ready(function() {
  // 给复选框绑定change事件
  $('#permit').on('change', function() {
    // this.checked返回当前复选框的勾选状态,toggle会据此显示/隐藏目标元素
    $('#short_code').toggle(this.checked);
  });
});

优点:代码极简,逻辑清晰,自动处理显示/隐藏的切换。

方法2:显式判断show()/hide()

如果你需要在显示/隐藏时添加额外逻辑(比如清空输入框、修改样式),可以用这种更直观的写法:

$(document).ready(function() {
  $('#permit').on('change', function() {
    if (this.checked) {
      $('#short_code').show();
      // 这里可以加额外操作,比如:$('#short_code').focus();
    } else {
      $('#short_code').hide();
      // 比如取消勾选时清空输入框:$('#short_code').val('');
    }
  });
});

优点:逻辑明确,方便扩展额外功能。

方法3:处理页面初始化状态

如果你的复选框默认可能是勾选状态(比如从后端渲染时带了checked属性),建议加上初始化逻辑,确保页面加载时文本框的状态和复选框一致:

$(document).ready(function() {
  // 先缓存元素,避免重复DOM查询
  const $permitCheckbox = $('#permit');
  const $shortCodeInput = $('#short_code');

  // 页面加载时先设置正确的显示状态
  $shortCodeInput.toggle($permitCheckbox.is(':checked'));

  // 再绑定change事件
  $permitCheckbox.on('change', function() {
    $shortCodeInput.toggle(this.checked);
  });
});

优点:覆盖了初始状态的场景,避免页面加载时出现状态不一致的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:29:37