iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0
自我挑戰組

每天一份前端小作品系列 第 19

【Day19】用JavaScript算理想體重

  • 分享至 

  • xImage
  •  

本日小作品:
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事件,如有寫錯之處麻煩各路高手指教><


上一篇
【Day18】用JavaScript做巴哈導覽列
下一篇
【Day20】用JavaScript做toDoList
系列文
每天一份前端小作品30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言