我正在研究这个项目,我需要从用户那里获取所选的值,然后做一个简单的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时,结果应该会改变。但是对于每个选定的值,结果总是保持不变。
它仅在调试模式下具有正确的功能,但在常规浏览器模式下却没有。
我不知道您的代码是如何工作的,或者当您执行该功能时,但是在这里您有一个片段,当您从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>
也许您可以将其与您的代码合并,但在以下问题中,请提供小提琴或工作代码。干杯!