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

根据$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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 17:17:06