JS Как отслеживать изменение переменной?
Не могу найти понятного метода для отслеживания значений в переменных. Условно у меня есть две переменных, по дефолту там значения false, но когда в обоих будет true мне нужно чтобы выполнилось какое-то действие. Например, как в этом примере нужно отследить значения и включить кнопку.
let a = false;
let b = false;
// Проверяю перый чек бокс и меняю значение
$('#check_1').on('change', function(){
if($(this).prop('checked')){
a = true;
}else{
a = false;
}
});
// Проверяю второй чек бокс и меняю значение
$('#check_2').on('change', function(){
if($(this).prop('checked')){
b = true;
}else{
b = false;
}
});
//Теперь как то нужно првоерить значение в переменных a и b и включить кнопку.
if (a == true && b == true) {
$('#btn_send').attr('disabled', false);
} else {
$('#btn_send').attr('disabled', true);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id='btn_send' disabled>Send</button>
<p><input id='check_1' type='checkbox'>Check 1</p>
<p><input id='check_2' type='checkbox'>Check 2</p>
Ответы (1 шт):
Автор решения: rusgeli
→ Ссылка
Как вариант просто делать вызов функции, содержащей в себе ваше условие.
Например так:
let a = false;
let b = false;
// Проверяю перый чек бокс и меняю значение
$('#check_1').on('change', function(){
if($(this).prop('checked')){
a = true;
}else{
a = false;
}
checkIfBothTrue();
});
// Проверяю второй чек бокс и меняю значение
$('#check_2').on('change', function(){
if($(this).prop('checked')){
b = true;
}else{
b = false;
}
checkIfBothTrue();
});
//Теперь как то нужно првоерить значение в переменных a и b и включить кнопку.
function checkIfBothTrue() {
if (a == true && b == true) {
$('#btn_send').attr('disabled', false);
} else {
$('#btn_send').attr('disabled', true);
}
}
<button id='btn_send' disabled>Send</button>
<p><input id='check_1' type='checkbox'>Check 1</p>
<p><input id='check_2' type='checkbox'>Check 2</p>