我试图使用onclick()
创建一个简单的getElementById
函数来从输入组中获取值,但我的局部变量之一似乎不能在另一个局部变量中起作用。< / p>
function hRadOpRec() {
var hgt = document.getElementById("oRecHgt").value;
var bot = document.getElementById("oRecBot").value;
var wPer = ((2 * hgt) + bot);
var cSec = (hgt * bot);
var hRad = (cSec / wPer);
return document.getElementById("hRORec").value = hRad;
}
<div class="col-md-3 collapse" id="hRadOpRec">
<h4>Açık Dikdörtgen Kanal Hidrolik Yarıçap</h4>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">Sıvı Yüksekliği (m)</span>
<input type="text" class="form-control" aria-describedby="basic-addon1" id="oRecHgt">
</div>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">Taban Genişliği (m)</span>
<input type="text" class="form-control" aria-describedby="basic-addon1" id="oRecBot">
</div>
<button type="button" class="btn" onclick="hRadOpRec()">Hesapla</button>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">Hidrolik Yarıçap (m)</span>
<input type="text" class="form-control" aria-describedby="basic-addon1" readonly id="hRORec">
</div>
</div>
我已经尝试过调试它,而变量bot
放入wPer
变量时似乎只是弄乱了一切。当我从wPer
删除机器人时,它可以正常工作。将bot
放在其他变量中也不会导致任何问题。例如,当hgt
和bot
为10时,函数应返回100/30
,而是返回0.04975124378109453
。当我从bot
中删除wPer
时,对于相同的值,函数会返回100/20
。
答案 0 :(得分:1)
缺少的是parseInt()
功能
由于hgt
和bot
是字符串,因此当您计算wPer
和cSec
时,也会发生连接。假设用户分别在10
和10
中输入第一个和第二个输入。
((2 * hgt) + bot) = ((2*"10")+"20") = 20 + "20" = 2020
。时间运算符*
将执行乘法,即使它是两个操作数字符串,因为它们将被解析,而+
运算符将在其中一个操作数是字符串时执行连接。(hgt * bot) = ("10"*"10") = 100
,一个正常的乘法,但两个操作数都是字符串100/1020
将是您函数的输出。以下是您要执行的操作,使用parseInt()
function hRadOpRec() {
var hgt = parseInt(document.getElementById("oRecHgt").value);
var bot = parseInt(document.getElementById("oRecBot").value);
var wPer = ((2 * hgt) + bot);
var cSec = (hgt * bot);
var hRad = (cSec / wPer);
return document.getElementById("hRORec").value= hRad;
}
&#13;
<div class="col-md-3 collapse" id="hRadOpRec">
<h4>Açık Dikdörtgen Kanal Hidrolik Yarıçap</h4>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">Sıvı Yüksekliği (m)</span>
<input type="text" class="form-control" aria-describedby="basic-addon1" id="oRecHgt">
</div>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">Taban Genişliği (m)</span>
<input type="text" class="form-control" aria-describedby="basic-addon1" id="oRecBot">
</div>
<button type="button" class="btn" onclick="hRadOpRec()">Hesapla</button>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">Hidrolik Yarıçap (m)</span>
<input type="text" class="form-control" aria-describedby="basic-addon1" readonly id="hRORec">
</div>
</div>
&#13;