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 = ");
    }
→ Ссылка