在满足条件之前禁用按钮 (javascript)

Disabling button until condition is met (javascript)

在变量等于数字之前,我不确定如何禁用按钮。在这种情况下,我试图禁用按钮,除非 Cash 等于 1。

<html>
<body>
    <button>Tester</button>
</body>
<script>
    var Cash = 0;

    if (Cash = 1) {
        btn.disabled = false;
    } else {
        btn.disabled = true;
    }
</script>
</html>
var Cash = 0;
while(true) {
    if (Cash = 1) {
        btn.disabled = false;
    } else {
        btn.disabled = true;
    }
}

这将使其不断检查 Cash 是否为 1。在您当前的代码中,它只会在页面首次加载时检查。

忽略代理,不,你在这里尝试做的事情是不可能的。

你应该做的是创建一个改变现金价值的函数。

var Cash = 0;
function updateCash(newCash){
    Cash = newCash;
    if (Cash===1) {
        btn.disabled = false;
    } else {
        btn.disabled = true;
    }
}
updateCash(10);

你应该知道

  • 等号=用于赋值。您的 if 语句实际上最终将 cash 设置为 1。请改用(严格)相等运算符 ===
  • 您可以将启用按钮缩短为 btn.disabled = cash!==1
  • 使用 let 而不是 var 并且 cash 应该是小写的。

请不要在任何情况下使用 while(true)。 由于 javascript 是单线程的,这意味着任何其他 运行,包括改变现金都不会发生,因为它卡在循环中。您可能会发现计算机上的风扇会开始非常响亮地旋转。

您需要先使用 document.querySelector

获取按钮元素
let btn = document.querySelector('button') 

You can read about querySelector here.

现在,当您选择元素时,您需要确保在 if 条件中使用 == 而不是 =

== 用于比较值 = 用于赋值

Difference between = and ==

现在您的代码应该如下所示并且应该禁用该按钮。

let cash = 0;

if (cash == 1) {
  btn.disabled = false;
} else {
  btn.disabled = true;
}

You can check this codepen