Bootstrap模态框禁用确认按钮技巧
时间:2026-01-08 20:54:44 106浏览 收藏
有志者,事竟成!如果你在学习文章,那么本文《Bootstrap 模态框禁用 Approve 按钮方法》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

本文介绍如何在 Bootstrap 模态框中,基于当前记录的 status 字段值(如 "Pending" 或 "Approved")自动禁用或启用 Approve 提交按钮,使用 jQuery 实现简洁可靠的前端控制逻辑。
在管理后台的预约系统中,常需通过模态框(Modal)展示并更新预约记录。为防止误操作,通常要求:仅当状态为 "Approved" 时才允许点击 Approve 按钮;若状态为 "Pending"(或其他非批准状态),则按钮应默认禁用且不可提交。
实现该功能无需后端干预,纯前端即可完成——关键在于:在模态框打开时,动态读取当前记录的 status 值,并据此设置按钮的 disabled 属性。
✅ 正确实现步骤
确保模态框与数据源绑定
假设你使用 DataTables 或普通 HTML 表格,每行末尾有 .updatebtn 类按钮用于触发模态框。点击时需将该行所有字段(含 status)传入模态框对应输入框。在模态框初始化时判断并禁用按钮
使用 jQuery 监听表格行内 .updatebtn 的点击事件,在填充表单字段后,立即检查 #status 输入框的值,并控制 #updatedata 按钮状态:
$(document).ready(function() {
$('#datatableid tbody').on('click', '.updatebtn', function() {
$('#updatemodal').modal('show');
const $tr = $(this).closest('tr');
const data = $tr.children('td').map(function() {
return $(this).text().trim();
}).get();
// 填充表单字段(索引按表格列顺序对应)
$('#update_id').val(data[0]);
$('#date').val(data[1]);
$('#time').val(data[2]);
$('#username').val(data[3]);
$('#contact').val(data[4]);
$('#bookpet_id').val(data[5]);
$('#service_id').val(data[6]);
$('#complaint').val(data[7]);
$('#status').val(data[8]);
// ✅ 核心逻辑:仅当 status === 'Approved' 时启用按钮
const isApproved = data[8] === 'Approved';
$('#updatedata').prop('disabled', !isApproved);
});
});? 注意:data[8] 对应表格第 9 列(从 0 开始计数),请根据你实际表格中 status 所在列调整索引。建议在 console.log(data) 后验证顺序。
- HTML 中保持语义清晰
确保按钮和状态输入框 ID 准确无误,且 #status 为 readonly(符合只读展示需求):
<input type="text" class="form-control inputdesign" name="status" id="status" readonly> <button type="submit" name="updatedata" id="updatedata" class="btn btn-dark button">Approve</button>
⚠️ 注意事项
- 不要用 attr('disabled', true):应使用 .prop('disabled', true),因 disabled 是布尔属性,.prop() 可正确反映真实 DOM 状态;.attr() 在某些 jQuery 版本中可能失效。
- 避免重复绑定:确保上述 JS 代码只执行一次(如放在 $(document).ready() 内),否则多次点击可能导致按钮状态异常。
- 服务端仍需校验:前端禁用仅为用户体验优化,务必在 code_book.php 中再次验证 $_POST['status'] 是否合法,防止绕过前端直接提交恶意请求。
- 扩展性建议:如未来需支持更多状态(如 "Rejected"、"Cancelled"),可改为白名单判断:
const validStatuses = ['Approved']; $('#updatedata').prop('disabled', !validStatuses.includes(data[8]));
通过以上方式,你就能在不修改后端逻辑的前提下,快速、可靠地实现“按状态动态启用/禁用 Approve 按钮”的交互体验,兼顾安全性与用户友好性。
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Bootstrap模态框禁用确认按钮技巧》文章吧,也可关注golang学习网公众号了解相关技术文章。
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
114 收藏
-
353 收藏
-
263 收藏
-
120 收藏
-
107 收藏
-
133 收藏
-
452 收藏
-
470 收藏
-
451 收藏
-
363 收藏
-
266 收藏
-
106 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习