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

如何在复选框未勾选时禁用按钮

实现服务条款复选框与按钮的联动控制

下面提供几种常见的实现方案,根据你的技术栈选择即可:

原生JavaScript方案

先写基础的HTML结构,复选框默认设置checked属性,按钮初始状态可用:

<input type="checkbox" id="termsCheckbox" checked>
<label for="termsCheckbox">我同意服务条款</label>
<button id="submitBtn">继续操作</button>

然后添加JavaScript逻辑,监听复选框的状态变化,同步控制按钮的禁用状态:

const checkbox = document.getElementById('termsCheckbox');
const submitBtn = document.getElementById('submitBtn');

// 初始状态(可选,因复选框默认勾选,按钮本来就可用)
submitBtn.disabled = !checkbox.checked;

// 监听复选框变化事件
checkbox.addEventListener('change', function() {
  submitBtn.disabled = !this.checked;
});

jQuery方案

如果你的项目使用jQuery,可以用更简洁的代码实现:

<input type="checkbox" id="termsCheckbox" checked>
<label for="termsCheckbox">我同意服务条款</label>
<button id="submitBtn">继续操作</button>
$(document).ready(function() {
  const $checkbox = $('#termsCheckbox');
  const $submitBtn = $('#submitBtn');

  // 初始状态
  $submitBtn.prop('disabled', !$checkbox.prop('checked'));

  // 监听变化
  $checkbox.on('change', function() {
    $submitBtn.prop('disabled', !$(this).prop('checked'));
  });
});

Vue.js方案(以Vue 3为例)

如果是Vue项目,可以直接通过数据绑定实现响应式控制:

<template>
  <div>
    <input type="checkbox" v-model="isTermsChecked" checked>
    <label>我同意服务条款</label>
    <button :disabled="!isTermsChecked">继续操作</button>
  </div>
</template>

<script setup>
import { ref } from 'vue';
const isTermsChecked = ref(true); // 初始勾选
</script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 02:03:21