【发布时间】:2016-07-31 14:26:25
【问题描述】:
有没有办法将<option> 的值设置为实际整数?我有以下html代码:
<select id="proteinperc" onchange="setMacrosProtein()">
<option value="0" selected>0%</option>
<option value="5">5%</option>
<option value="10">10%</option>
<option value="15">15%</option>
<option value="20">20%</option>
<option value="25">25%</option>
<option value="30">30%</option>
<option value="35">35%</option>
<option value="40">40%(Rec.)</option>
<option value="45">45%</option>
<option value="50">50%</option>
<option value="55">55%</option>
<option value="60">60%</option>
<option value="65">65%</option>
<option value="70">70%</option>
<option value="75">75%</option>
<option value="80">80%</option>
<option value="85">85%</option>
<option value="90">90%</option>
<option value="95">95%</option>
<option value="100">100%</option>
</select>
然后我有下面的脚本试图访问这些选项值并使用它们执行计算。问题是当我对它们进行任何计算时,我得到的只是字符串连接或奇怪的值。
function setMacrosProtein() {
myProtein = document.getElementById("proteinperc").value;
var removeValue = 101 - (myProtein+myFats+myCarbs);
alert(removeValue); // Alert here just for testing the first calculation.
var x = document.getElementById("fatperc").options.length;
for(i = 0; i < x; i++) {
// Check fatperc
if(document.getElementById("fatperc").options[i].value + myFats >= removeValue) {
document.getElementById("fatperc").options[i].disabled = true;
} else if(document.getElementById("fatperc").options[i].value + myFats < removeValue) {
document.getElementById("fatperc").options[i].disabled = false;
}
// Check carbperc
if(document.getElementById("carbperc").options[i].value+myCarbs >= removeValue) {
document.getElementById("carbperc").options[i].disabled = true;
} else if(document.getElementById("carbperc").options[i].value+myCarbs < removeValue) {
document.getElementById("carbperc").options[i].disabled = false;
}
}
//setCals();
}
如果无法从选项值返回整数,我确实有一个解决方法,但有一个小问题。我可以设置一个新数组,将值镜像到选项列表,即:array[0] 将等于 option[0],我可以在 if 语句中检查数组。
但是,如何以这种方式将变量设置为当前选定的选项?如何在选项数组中引用当前选定选项的位置以获取新创建数组中的镜像位置?澄清一下,如果选择的选项当前是选项[4],我如何引用它的位置然后拉数组[4]的值?
【问题讨论】:
-
在您的选择值周围使用 parseInt,例如 'parseInt(options[i].value)。那将是一个 int。
标签: select integer position option selected