得到` ``使用JavaScript的值只能在调试模式下工作

问题描述 投票:-2回答:1

我正在研究这个项目,我需要从用户那里获取所选的值,然后做一个简单的if - else。但是,我无法从用户那里获得所选选项的值。

<select id = "insulinStrength" name="insulinStrength" type="text" class="selectBtn" >
    <option value="">Select Insulin Type</option>
    <option value="Novolog">Novolog</option>
    <option value="Humalog">Humalog</option>
    <option value="Apidra">Apidra</option>
    <option value="Velosulin">Velosulin</option>
</select>   
function getInsulinStrength() {
    let insulinSt = document.getElementById('insulinStrength'),
    selectedNode = insulinSt.options[insulinSt.selectedIndex];

    if (selectedNode.value ==="Humalog"){
        insulinStrengthTotal = 1800;
    } else {
        insulinStrengthTotal = 1500;
    }

    return insulinStrengthTotal;
}

该值需要放在下面的函数中:

function doTheMath(){

    let carbIntake = getCurrentMeal();
    let cbs = getCurrentBloodSugar();
    let tbs = getTargetBloodSugar();
    let br = getBasalRate();
    let is = getInsulinStrength();

    let dailyBasalRate = br * 24;
    let gramsPerInsulin = 450 / dailyBasalRate;
    let bolus = carbIntake / gramsPerInsulin;

    if (cbs > tbs) {
        let correctionFactor = is / dailyBasalRate;
        let correctionDose = (cbs - tbs) / correctionFactor;
        bolus += correctionDose;
    }

    return bolus;
}

其他所有工作减去getInsulinStrength()功能。无论用户选择什么,它都返回相同的值。

当用户选择Humalog时,结果应该会改变。但是对于每个选定的值,结果总是保持不变。

它仅在调试模式下具有正确的功能,但在常规浏览器模式下却没有。

javascript html
1个回答
2
投票

我不知道您的代码是如何工作的,或者当您执行该功能时,但是在这里您有一个片段,当您从select中选择一个选项时会发出警报。

https://jsfiddle.net/MSclavi/m641xba9/5/

onchange添加到select就像一个魅力

<select id = "insulinStrength" onchange="getInsulinStrength()" name="insulinStrength" class="selectBtn" >
    <option value="">Select Insulin Type</option>
    <option value="Novolog">Novolog</option>
    <option value="Humalog">Humalog</option>
    <option value="Apidra">Apidra</option>
    <option value="Velosulin">Velosulin</option>
</select>    

也许您可以将其与您的代码合并,但在以下问题中,请提供小提琴或工作代码。干杯!

© www.soinside.com 2019 - 2024. All rights reserved.