![](/img/trans.png)
[英]Using javascript to display an output based on two html selects
[英]html output based on two other output
強度將由 (=g) 和土壤類型決定。
我當前的代碼:
<label>
SPT Blow Count:
</label>
<br>
<input type="text" id="spt1" name="spt" min="0" placeholder="a" required=""/>
<input type="text" id="spt2" name="spt" min="0" placeholder="b" required=""/>
<input onblur="findTotal()" type="text" id="spt3" name="spt" min="0" placeholder="c" required=""/>
<input onblur="findTotal()" type="text" id="spt4" name="spt" min="0" placeholder="d" required=""/>
<input onblur="findTotal()" type="text" id="spt5" name="spt" min="0" placeholder="e" required=""/>
<input onblur="findTotal()" type="text" id="spt6" name="spt" min="0" placeholder="f" required=""/>
<br>
=
<br>
<input type="text" id="nvalue" name="nvalue" min="0" max="50 "placeholder="g" required=""/>
<br>
<script type="text/javascript">
function findTotal(){
var arr = document.getElementsByName('spt');
var tot=0;
for(var i=2;i<arr.length;i++){
if(parseInt(arr[i].value))
tot += parseInt(arr[i].value);
}
document.getElementById('nvalue').value = tot;
}
</script>
<p id="soil_strength"></p>
<input type="text" id="" name="" placeholder="Strength"/>
<select name="soil_type" id="soil_type">
<option value="" disabled selected hidden>Type</option>
<option value="">CLAY</option>
<option value="">SILT</option>
<option value="">SAND</option>
<option value="">GRAVEL</option>
</select>
土壤類型:粘土/淤泥 - 粘性
砂礫 - 非粘性
期望的結果示例:
如果土壤類型為粘性且 g >=30,則強度將顯示為 HARD 如果土壤類型為非粘性且 g >=50,則強度將非常致密
在您的findTotal
function 中,您正在遍歷從索引 2 開始的數組。問題是在您的示例代碼中,您只有兩個名稱為“spt”的元素。 這意味着數組長度為 2。因此您將跳過數組的所有元素。
您需要將初始化變量 ( i
) 設置為零,因為當前您是在數組末尾開始循環。
修復方法是:
for(var i=0;i<arr.length;i++){
在此處閱讀 JavaScript 中有關 for 循環的更多信息(尤其是了解 for 循環中的每個表達式的作用): https://www.w3schools.com/js/js_loop_for.asp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.