Я хотел бы запустить приведенный ниже код и непрерывно проверять операторы если каждые 2 секунд; чтобы увидеть, были ли обновлены какие-либо значения. Так что оборачиваем нижеследующий бесконечный цикл 2000?
if (value1 > 0 ) {
document.getElementById('field_52_116').style.display = "none";
} else if (value1 == 0 ) {
// document.getElementById('rate').style.display = "none";
// document.getElementById('pay-plans').style.display = "none";
}
if (value2 > 0 ) {
document.getElementById('field_52_116').style.display = "none";
} else if (value2 == 0 ) {
// document.getElementById('rate').style.display = "none";
// document.getElementById('pay-plans').style.display = "none";
}
if (value3 > 0 ) {
document.getElementById('field_52_116').style.display = "none";
} else if (value3 == 0 ) {
// document.getElementById('rate').style.display = "none";
// document.getElementById('pay-plans').style.display = "none";
}
if (value1 && value2 && value3 == 0 ) {
document.getElementById('field_52_116').style.display = "block";
document.getElementById('rate').style.display = "none";
document.getElementById('pay-plans').style.display = "none";
}
Оберните приведенный выше код в функцию и используйте setInterval для вызова этой функции каждые 2 секунды, как setInterval( myValidateFunction, 2000);.
Почему бы не прикрепить прослушиватели событий change к входам формы и не сделать что-нибудь на их основе. Спасает наличие таймера.
Разве не было бы проще запустить функцию при изменении?
Что это за value1, value2 and value3? Простые переменные JS?
Я согласен с теми, кто рекомендует использовать для этого обработчик событий. Таймер кажется неправильным способом сделать это, если только у вас нет особой необходимости проверять каждые две секунды.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете заключить свои проверки в функцию и использовать setInterval для запуска этой функции каждые 2 секунды:
function update() {
var value1 = Math.floor(Math.random() * 2),
value2 = Math.floor(Math.random() * 2),
value3 = Math.floor(Math.random() * 2);
document.getElementById("values").innerHTML = `Value1: ${value1}, Value2: ${value2}, Value3: ${value3}`;
if (value1 > 0) {
document.getElementById('field_52_116').style.display = "none";
} else if (value1 == 0) {
document.getElementById('field_52_116').style.display = "block";
document.getElementById('field_52_116').style.color = "green";
}
if (value2 > 0) {
document.getElementById('field_52_116').style.display = "none";
} else if (value2 == 0) {
document.getElementById('field_52_116').style.display = "block";
document.getElementById('field_52_116').style.color = "red";
}
if (value3 > 0) {
document.getElementById('field_52_116').style.display = "none";
} else if (value3 == 0) {
document.getElementById('field_52_116').style.display = "block";
document.getElementById('field_52_116').style.color = "blue";
}
if (value1 && value2 && value3 == 0) {
document.getElementById('field_52_116').style.display = "block";
document.getElementById('rate').style.display = "none";
document.getElementById('pay-plans').style.display = "none";
}
}
setInterval(update, 2000);div {
height: 50px;
border: 1px solid black;
margin: 5px;
padding: 2px;
}<p id = "values"></p>
<div id = "field_52_116">Field 52 116</div>
<div id = "rate">Rate</div>
<div id = "pay-plans">Pay plans</div>
Оберните их в функцию и используйте
setInterval?