Отключение кнопки до тех пор, пока не будет выполнено условие (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>

Вместо того, чтобы забивать браузер бесконечным циклом while(true), вы должны попытаться определить события, которые могут изменить значение вашей переменной Cash, и прикрепить к ним функцию обработчика событий, чтобы она могла соответствующим образом настроить видимость вашей кнопки.

Carsten Massmann 09.04.2022 08:54
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Введение в технологический стек Twitch
Введение в технологический стек Twitch
В этой статье мы подробно рассмотрим стек Twitch, который подразделяется на следующий набор технологий:
8 полезных HTML-тегов, которые лучше использовать вместо <div>
8 полезных HTML-тегов, которые лучше использовать вместо <div>
Когда я только начинал изучать html, я использовал div для всего, это был один из первых тегов, которые я выучил, и казалось, что он работает в любой...
HTML5: API локального хранилища (Local Storage)
HTML5: API локального хранилища (Local Storage)
LocalStorage - это простой способ хранения данных в браузере пользователя.
Доступность HTML - программирование с инклюзивной перспективой
Доступность HTML - программирование с инклюзивной перспективой
Представьте, что вы хотите поехать на пляж. Представьте, что вы упорно трудились весь год и заслужили это. Прибыв на место, вы обнаруживаете, что...
Именование классов CSS: Конвенция именования BEM
Именование классов CSS: Конвенция именования BEM
Сопровождаемость кода, сама по себе, является пульсирующим эффектом нескольких факторов. Когда часть программного обеспечения читабельна, ясна,...
0
1
36
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

var Cash = 0;
while(true) {
    if (Cash = 1) {
        btn.disabled = false;
    } else {
        btn.disabled = true;
    }
}

Это заставит его постоянно проверять, равен ли Cash 1. В вашем текущем коде он будет проверять только при первой загрузке страницы.

Кнопка не кажется отключенной, когда в этом сценарии наличные равны 0.

d4wgs 09.04.2022 08:49

Игнорируя прокси, нет, то, что вы пытаетесь сделать здесь, на самом деле невозможно с тем, как вы это делаете.

Вместо этого Что ты должен делать должен создать функцию, которая изменяет стоимость наличных денег.

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

Ты должен знать что

  • Знак равенства = предназначен для присваивания. Ваш оператор if фактически устанавливает значение cash равным 1. Вместо этого используйте (строгий) оператор равенства ===
  • Вы можете сократить включение btn до btn.disabled = cash!==1
  • Используйте let вместо var, а cash должно быть строчным.

Пожалуйста, не используйте while(true) ни при каких обстоятельствах. Поскольку javascript является однопоточным, это означает, что все остальное, что выполняется, включая обмен наличными, никогда не произойдет, потому что оно застряло в цикле. Вы, вероятно, обнаружите, что вентиляторы на вашем компьютере начинают вращаться очень громко.

Ответ принят как подходящий

вам нужно сначала получить элемент кнопки, используя document.querySelector

let btn = document.querySelector('button') 

Вы можете прочитать о querySelector здесь.

теперь, когда вы выбрали элемент, вам нужно убедиться, что вы используете == в своем условии if вместо =

== для сравнения значения = для присвоения значения

Разница между = и ==

теперь ваш код должен выглядеть так, и он должен отключить кнопку.

let cash = 0;

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

Вы можете проверить этот codepen

Другие вопросы по теме