slmin=22 slmax=38 glmin=12 glmax=16
JS里:我用if,else if,else 把 shuifen这个变量的值设置在12-16或22-38之间,但是测试的时候,100以上全部也能输入并保存,求大神看看我的代码哪里需要改正。求指导,求改正
if(parseFloat(shuifen)>=parseFloat(slmin)&&parseFloat(shuifen)<=parseFloat(slmax)){
danjia =slbiaozhunjia- (shuifen-slbiaozhun)*sljiagebodong;
document.getElementById("ruKu.danJia").value=danjia.toFixed(2);
}
else if(parseFloat(shuifen)>=parseFloat(glmin)&&shuifen<=glmax ){
danjia =glbiaozhunjia- (shuifen-glbiaozhun)*gljiagebodong;
document.getElementById("ruKu.danJia").value=danjia.toFixed(2);
}
else{alert("水分在"+glmin+"—"+glmax+"或"+slmin+"—"+slmax+"之间")}
根本没有什么else if语句,那其实是
if
...
else
if
...
else
...
就你的代码,如果if关系并列,就写多个if
除了shuifen<=glmax没有转换为数字外,没看出这函数有问题。
是不是变量申明有问题
var slmin=22,slmax=38,glmin=12,glmax=16;
测试例子,100以上没问题
<!doctype html>
<html>
<body>
<script>
var slmin=22, slmax=38, glmin=12, glmax=16;
var glbiaozhunjia = 20,glbiaozhun=5,sljiagebodong=1;
var slbiaozhunjia = 60,slbiaozhun=2,gljiagebodong=1;
function k(){
var shuifen = document.getElementById('sf').value;
if(parseFloat(shuifen)>=parseFloat(slmin)&&parseFloat(shuifen)<=parseFloat(slmax)){
danjia =slbiaozhunjia- (shuifen-slbiaozhun)*sljiagebodong;
document.getElementById("ruKu.danJia").value=danjia.toFixed(2);
}
else if(parseFloat(shuifen)>=parseFloat(glmin)&&shuifen<=glmax ){
danjia =glbiaozhunjia- (shuifen-glbiaozhun)*gljiagebodong;
document.getElementById("ruKu.danJia").value=danjia.toFixed(2);
}
else{alert("水分在"+glmin+"—"+glmax+"或"+slmin+"—"+slmax+"之间")}
}
</script>
<input id="sf" type="text" value="0"/>
<input id="input1" type="button" value="校验" onclick='k()'/>
<input id="ruKu.danJia" type="text" value="0"/>
</body>
</html>
qwwwwwwwwwww**qeeeeeeeeeeeeeeeeeeeeeeeee_qwwwwwwwwwwwwwwwwwwwwwww_**qwwwwwwwwwwwwwwwwwwqwwwwwwwwwwwwwww