本日小作品:
https://codepen.io/linchinhsuan/pen/jOqjbEr
var btn = document.getElementById("cal");
btn.addEventListener("click",function(){
var cm = document.getElementById("cm").value;
var idealWeight = (cm/100)**2*22;
var intWeight = Math.round(idealWeight);
if(isNaN(intWeight)){
document.getElementById("idealWeight").textContent = "請輸入數字";
return;
}else{
document.getElementById("idealWeight").textContent = intWeight + "kg";
}
},false)
在【您的理想體重為】的按鈕上綁定點擊事件,撈出使用者輸入的身高,接著是透過理想體重計算公式(身高(公尺)^2x22)來計算出理想體重,並賦值到變數idealWeight上。
但小數點後數字一堆看上去很不漂亮,所以我們這裡用Math.round(idealWeight)
四捨五入到整數,並賦值在變數intWeight上。
最後,是比較特別的isNaN()
,如果括號內的東西是NaN則會回傳true,反之則是false。
透過這個特性,當使用者輸入了非數字的內容,例如忘記切輸入法變成一段文字之類的,最後的intWeight就會是NaN,if判斷式因為isNaN()
是true就會跑以下這段。
document.getElementById("idealWeight").textContent = "請輸入數字";
return;
反之,如果輸入正確的話就會把結果印上去。
var cmBtn = document.getElementById("cm");
cmBtn.addEventListener("blur",function(e){
var value = cmBtn.value;
if(value == ''){
document.getElementById("idealWeight").textContent = "請輸入數字";
}
},false)
在輸入身高的input上綁定一個blur事件,因為對於這個計算來說身高是最重要的資訊。
blur事件會在元素失去焦點的時候觸發,此時當input內為空值,就會觸發if判斷式,提醒使用者要輸入數字。
---
本日結語:
今天是十九天,今天練習blur事件,如有寫錯之處麻煩各路高手指教><