根据$verifikasi变量状态禁用打印按钮失效问题求助
问题分析与解决方案
你的代码存在两个核心问题,导致按钮在$verifikasi为"Pending"时仍可触发跳转:
1. JavaScript条件判断逻辑错误
你在if语句中误用了赋值运算符=,而非比较运算符==或===。这会直接将$verifikasi赋值为"Pending",导致条件永远为真,逻辑完全偏离预期。
错误代码:
if ($verifikasi = "Pending") {
修正为(推荐使用严格相等===):
if ($verifikasi === "Pending") {
2. 按钮被<a>标签包裹,跳转不受按钮禁用状态影响
即使按钮设置了disabled,点击<a>标签的区域仍然会触发页面跳转——因为<a>标签本身没有被禁用,它的跳转优先级高于内部按钮的禁用状态。同时你的原始HTML中<a>标签未正确闭合,需要修正为</a>。
解决方法二选一:
方法一:移除<a>标签,通过按钮点击事件实现跳转
<button id="btnSubmit" type="button" class="btn btn-primary">Print</button> <script> const btnSubmit = document.getElementById('btnSubmit'); if ($verifikasi === "Pending") { btnSubmit.disabled = true; } else { btnSubmit.disabled = false; btnSubmit.addEventListener('click', function() { window.location.href = "printable.php"; }); } </script>
方法二:保留<a>标签,同时控制其跳转行为
<a id="printLink" href="printable.php"> <button id="btnSubmit" type="button" class="btn btn-primary">Print</button> </a> <script> const printLink = document.getElementById('printLink'); const btnSubmit = document.getElementById('btnSubmit'); if ($verifikasi === "Pending") { btnSubmit.disabled = true; printLink.addEventListener('click', function(e) { e.preventDefault(); // 阻止a标签跳转 }); } else { btnSubmit.disabled = false; } </script>
内容的提问来源于stack exchange,提问作者StarvingCat
相关产品推荐
相关产品推荐

