Bootstrap 按钮激活与禁用

Bootstrap 中按钮状态的控制方法

问题

使用 Bootstrap 激活或禁用按钮要如何操作?

解答

激活按钮

使用 .active 类让按钮呈现按下状态:

<!-- 普通按钮 -->
<button type="button" class="btn btn-primary">普通</button>

<!-- 激活状态按钮 -->
<button type="button" class="btn btn-primary active">激活</button>

禁用按钮

1. <button> 元素 - 使用 disabled 属性

<!-- 使用 disabled 属性 -->
<button type="button" class="btn btn-primary" disabled>禁用按钮</button>

<!-- 也可以写成 disabled="disabled" -->
<button type="button" class="btn btn-secondary" disabled="disabled">禁用按钮</button>

2. <a> 元素 - 使用 .disabled 类

<!-- a 标签不支持 disabled 属性,需要用 .disabled 类 -->
<a href="#" class="btn btn-primary disabled" aria-disabled="true">禁用链接</a>

<!-- 完全阻止点击,添加 tabindex="-1" -->
<a href="#" class="btn btn-primary disabled" tabindex="-1" aria-disabled="true">禁用链接</a>

JavaScript 动态控制

<button id="myBtn" type="button" class="btn btn-primary">按钮</button>

<script>
const btn = document.getElementById('myBtn');

// 禁用按钮
btn.disabled = true;
// 或
btn.setAttribute('disabled', 'disabled');

// 启用按钮
btn.disabled = false;
// 或
btn.removeAttribute('disabled');

// 切换激活状态
btn.classList.toggle('active');
</script>

jQuery 方式

// 禁用
$('#myBtn').prop('disabled', true);
// 或
$('#myBtn').attr('disabled', 'disabled');

// 启用
$('#myBtn').prop('disabled', false);
// 或
$('#myBtn').removeAttr('disabled');

// 激活
$('#myBtn').addClass('active');

// 取消激活
$('#myBtn').removeClass('active');

完整示例

<!DOCTYPE html>
<html>
<head>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="zxwuk">
  <h5>按钮状态演示</h5>
  
  <!-- 不同状态的按钮 -->
  <button class="btn btn-primary">普通</button>
  <button class="btn btn-primary active">激活</button>
  <button class="btn btn-primary" disabled>禁用</button>
  
  <hr>
  
  <!-- 动态控制 -->
  <button id="targetBtn" class="btn btn-success">目标按钮</button>
  <button class="btn btn-outline-secondary" onclick="toggleDisabled()">切换禁用</button>
  <button class="btn btn-outline-secondary" onclick="toggleActive()">切换激活</button>

  <script>
    const targetBtn = document.getElementById('targetBtn');
    
    function toggleDisabled() {
      targetBtn.disabled = !targetBtn.disabled;
    }
    
    function toggleActive() {
      targetBtn.classList.toggle('active');
    }
  </script>
</body>
</html>

关键点

  • <button> 使用 disabled 属性禁用,<a> 使用 .disabled
  • .active 类用于显示按钮的激活/按下状态
  • <a> 标签禁用时需添加 aria-disabled="true" 保证可访问性
  • JavaScript 中用 disabled 属性或 classList 动态控制状态
  • .disabled 类只改变样式,不阻止 <a> 标签的默认行为,需配合 JS 处理