Javascript Can';t计算html输入类型范围的值

Javascript Can';t计算html输入类型范围的值,javascript,Javascript,我想计算Html范围输入的值。 只希望在输入范围更改时动态更改结果。 我写的函数不够清晰,似乎不起作用。 谁能帮我一下吗。 提前谢谢。 以下是我的html代码: <form> Height: <input type="range" id="height" onchange="this.setAttribute('value',this.value);" min="0" max="200" step="0.1" value="0" /> <br>

我想计算Html范围输入的值。 只希望在输入范围更改时动态更改结果。 我写的函数不够清晰,似乎不起作用。 谁能帮我一下吗。 提前谢谢。 以下是我的html代码:

<form>
 Height:
 <input type="range" id="height" onchange="this.setAttribute('value',this.value);" min="0"     max="200" step="0.1" value="0" />
 <br>
 Weight:
 <input type="range" id="weight" onchange="this.setAttribute('value',this.value);" min="0"    max="200" step="0.1" value="0" />
 <br>
</form>
<div id="displaybmi"> Your BMI : </div>
}


getElementById,而不是ByID。不要将最后一个字符大写。

代码中有4个问题和1个不一致

1) jQuery使用函数
val()
获取输入值,而不是属性
value

更改:

height = $('#height').value;
weight = $('#weight').value; 

2) Javascript区分大小写,没有函数
document.getElementByID
它是
document.getElementByID
(小写“d”)

3) 您的代码执行一次,当页面加载时,您需要在每次
输入
字段更改时执行代码。为此,代码应该位于jQuery
$(document).ready()函数中

4) 计算bmi的方法不返回任何值,它只设置一个等于结果的变量(
bmi
)。您希望返回此值,以便使用它输出为html

不一致之处在于,您使用jQuery按Id获取字段,然后返回到香草javascript进行输出,您可以做到这一点

$('#displaybmi').html(calbmi(weight,height));
当然,使用本机javascript调用没有什么错,只是可能更容易坚持使用这种或那种方法


其他一些意见:

  • 您根本不需要这个位:
    onchange=“this.setAttribute('value',this.value);”

  • 在对字段进行数学运算时,应强制这些字段只输入数字。考虑使用类似的

    height=parseFloat($('#height').val())



工作示例:

getElementByID
应该是
getElementByID
。value
应该是
.val()
感谢您的回复。。我已经更改了代码,但它仍然无法计算。。身高、体重;height=parseFloat($('#height').val());weight=parseFloat($('#height').val());($(“#身高”)|(“#体重”).change(函数(e){$('#displaybmi').html(calbmi(体重,身高));函数calbmi(){var bmi=weight/(身高*身高);返回bmi;}});
height = $('#height').val();
weight = $('#weight').val();
$('#displaybmi').html(calbmi(weight,height));