js не хочет считать целые числа
Есть код js
function printf( message, messageh){
let print_box = document.getElementById("print_box");
let print_h3 = document.getElementById("print_h3");
let print_h4 = document.getElementById("print_h4");
print_h3.innerHTML = messageh;
print_h4.innerHTML = message;
print_box.style.display = "block";
setTimeout("print_box.style.display = 'none';" , 10000);
}
var D;
var a = document.getElementById("in1").value;
var b = document.getElementById("in2").value;
var c = document.getElementById("in3").value;
function discover_fun_D(){
D = +b + +b ;
printf(D, "D = ");
}
Все стили настроены все функции вызываются , только D всегда выводится как 0 (сообщение : "D = 0") , при подставке в printf b , выводтся вообще только "D = ".
Почему и как это исправить ?
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
Вы получаете значения из пустых инпутов во время загрузки страницы.
var a = document.getElementById("in1");
var b = document.getElementById("in2");
var c = document.getElementById("in3");
function discover_fun_D() {
D = +b.value + +b.value;
printf(D, "D = ");
}
Автор решения: Denis640Kb
→ Ссылка
Вам необходимо отслеживать нажатие кнопки или изменение полей input.
К примеру, чтобы получить корректные данные из полей (после ввода), воспользуйтесь следующим:
function printf( message, messageh){
let print_box = document.getElementById("print_box");
let print_h3 = document.getElementById("print_h3");
let print_h4 = document.getElementById("print_h4");
print_h3.innerHTML = messageh;
print_h4.innerHTML = message;
print_box.style.display = "block";
setTimeout("print_box.style.display = 'none';" , 10000);
}
var D;
let button = document.getElementById('ID_vashei_knopki'); //Получаем кнопку по id
button.onclick = function () { // Отслеживаем нажатие кнопки и уже в после нажатия получаем данные из inputов
var a = document.getElementById("in1").value;
var b = document.getElementById("in2").value;
var c = document.getElementById("in3").value;
discover_fun_D(a, b, c);
};
function discover_fun_D(a, b, c){
D = +b + +b ;
printf(D, "D = ");
}