2015-09-24 2 views
0

То, что я пытаюсь достичь:
На .change получить значение ИМТ из функции и отображения в виде текста.JQuery получить значение из нескольких функций в

Актуальные проблемы:
Я не могу получить значение bmitest из любой функции и получить следующее сообщение об ошибке в console.log undefined.

Любая помощь была бы признательна Вам!

$('#metricupdate').change(metricUpdate); 
    $('#imperialupdate').change(imperialUpdate); 

    // BMI 
    var bmitest; 
    // Metric Update Function 
    function metricUpdate() { 
     setTimeout(function() { 
     var heightval = parseInt($('#height').val()); 
     var weightval = parseInt($('#weight').val()); 
     var bmicalc = weightval/(heightval/100 * heightval/100); // BMI Formula 
     var bmi = Math.round(bmicalc * 1)/1; 
     bmitest = bmi; // BMI Value <-- Value From Here 
     }, 10); 
    } 
    // Imperial Update Function 
    function imperialUpdate() { 
     setTimeout(function() { 
     var feet = parseInt($('#feet').val()); 
     var inches = parseInt($('#inches').val()); 
     var stone = parseInt($('#stone').val()); 
     var pounds = parseInt($('#pounds').val()); 
     var imperialCalc = ((stone*14)+pounds)/((feet*12+inches)*(feet*12+inches))*703; // BMI Formula 
     bmitest = imperialCalc.toFixed(1); // BMI Value <-- Value From Here 
     }, 10); 
    } 
    // BMI Value 
    $('#bmi').text(bmitest); // <-- Value to Here 
    console.log(bmitest); 

ответ

0

Поместите следующий код с функциями metricUpdate() и imperialUpdate()

$('#bmi').text(bmitest); // <-- Value to Here 
 
    console.log(bmitest);

+0

Почувствуйте себя настоящим идиотом! Спасибо за эту Ушму. –

0

Я хотел бы сделать это так:

$('#metricupdate').change(metricUpdate); 
    $('#imperialupdate').change(imperialUpdate); 

    // BMI 
    var bmitest; 
    // Metric Update Function 
    function metricUpdate() { 
     setTimeout(function() { 
     var heightval = parseInt($('#height').val()); 
     var weightval = parseInt($('#weight').val()); 
     var bmicalc = weightval/(heightval/100 * heightval/100); // BMI Formula 
     var bmi = Math.round(bmicalc * 1)/1; 
     bmitest = bmi; // BMI Value <-- Value From Here 
     // BMI Value 
     $('#bmi').text(bmitest); // <-- Value to Here 
     console.log(bmitest); 
     }, 10); 
    } 
    // Imperial Update Function 
    function imperialUpdate() { 
     setTimeout(function() { 
     var feet = parseInt($('#feet').val()); 
     var inches = parseInt($('#inches').val()); 
     var stone = parseInt($('#stone').val()); 
     var pounds = parseInt($('#pounds').val()); 
     var imperialCalc = ((stone*14)+pounds)/((feet*12+inches)*(feet*12+inches))*703; // BMI Formula 
     bmitest = imperialCalc.toFixed(1); // BMI Value <-- Value From Here 
     // BMI Value 
     $('#bmi').text(bmitest); // <-- Value to Here 
     console.log(bmitest); 
     }, 10); 
    } 

Так вы триггер, после оценки значения bmi, jQuery .text(), чтобы установить новое значение.

Смежные вопросы