- 網頁設計
- 主要的程式架構
- 取得身高體重值 (轉為浮點數) 並計算
- 取兩位小數 (兩種方法)
- 條件判斷語法
- 結果的顯示 (彈出訊息框、顯示在網頁上、網頁連結...)
- 加入身高的檢查 (避免除以零的錯誤)
************************************************************************
實作0:網頁設計
網頁上顯示輸入的身高、體重及計算的按鈕
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <!DOCTYPE html> <html> <head> <Meta Charset="utf-8"> <title> BMI </title> </head> <body> <h1>BMI 身體質量指數</h1> <form method="post" action=""><!--表單,action是要回傳至後台的網址,ex:action = "你要去的網頁.php"--> <p>身高: <input type="text" name="height" id="height" size="4"/>公分 <!--通常name和id會設定相同,一個後台用,一個前端用--> </p> <p>體重: <input type="text" name="weight" id="weight" size="4"/>公斤 </p> <p> <input type="button" name="button" id="button" value="計算BMI"/> <!--若要回傳至後台,input type="submit"--> </p> </form> <p> </p> </body> </html> |
---------------------------------------------------------------------------------------------------------------
實作1:主要的程式架構
設計function
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <!DOCTYPE html> <html> <head> <Meta Charset="utf-8"> <title> BMI </title> <script> function calc_bmi() { var h = document.getElementById('height').value; alert('h='+h); } </script> </head> <body> <h1>BMI 身體質量指數</h1> <form method="post" action=""><!--表單,action是要回傳至後台的網址,ex:action = "你要去的網頁.php"--> <p>身高: <input type="text" name="height" id="height" size="4"/>公分 <!--通常name和id會設定相同,一個後台用,一個前端用--> </p> <p>體重: <input type="text" name="weight" id="weight" size="4"/>公斤 </p> <p> <input type="button" name="button" id="button" value="計算BMI" onclick="calc_bmi();"/> <!--若要回傳至後台,input type="submit"--> </p> </form> <p> </p> </body> </html> |
---------------------------------------------------------------------------------------------------------------
實作2:撰寫計算公式
BMI= 體重/身高(m)*身高(m),取得數值需轉為浮點數計算
1 2 3 | var h = parseFloat(document.getElementById('height').value);//將字串轉為浮點數 var w = parseFloat(document.getElementById('weight').value); var bmi = w/((h/100)*(h/100)); |
---------------------------------------------------------------------------------------------------------------
實作3:取兩位小數
1 2 3 | //取兩位小數 bmi = Math.floor( bmi * 100 ) / 100 ; //方法1:將bmi*100在無條件捨去小數,在/100 bmi = bmi.toFixed(2); |
---------------------------------------------------------------------------------------------------------------
實作4:條件判斷語法
判斷bmi數值18.5、24、27等要秀出對應的資訊
判斷bmi數值18.5、24、27等要秀出對應的資訊
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | function calc_bmi() { var h = parseFloat(document.getElementById('height').value);//將字串轉為浮點數 var w = parseFloat(document.getElementById('weight').value); var bmi = w/((h/100)*(h/100)); //取兩位小數 bmi = Math.floor(bmi*100)/100 ; //方法1:將bmi*100在無條件捨去小數,在/100 bmi = bmi.toFixed(2); var msg='';//要秀的資訊 //判斷 if ( bmi<=18.5 ) { msg='太輕'; }else if ( bmi>18.5 && bmi<=24) { msg='正常'; }else if ( bmi>24 && bmi<=27) { msg='稍重'; }else if ( bmi>27) { msg='月巴 月半'; }else { msg='看到這表示程式出錯了'; } alert('bmi='+bmi+'\n'+msg);//先網頁秀出 } |
---------------------------------------------------------------------------------------------------------------
實作5:將所有要顯示的結果寫入
秀出資訊及圖片以及網頁
秀出資訊及圖片以及網頁
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | <!DOCTYPE html> <html> <head> <Meta Charset="utf-8"> <title> BMI </title> <script> function calc_bmi() { var h = parseFloat(document.getElementById('height').value);//將字串轉為浮點數 var w = parseFloat(document.getElementById('weight').value); var bmi = w/((h/100)*(h/100)); //取兩位小數 bmi = Math.floor(bmi*100)/100 ; //方法1:將bmi*100在無條件捨去小數,在/100 bmi = bmi.toFixed(2); var msg='';//要秀的資訊 var pic='';//要秀的圖檔 var page='';//要秀的網址 //判斷 if ( bmi<=18.5 ) { msg='太輕'; pic='s1.jpg'; page='page1.html'; }else if ( bmi>18.5 && bmi<=24) { msg='正常'; pic='s2.jpg'; page='page2.html'; }else if ( bmi>24 && bmi<=27) { msg='稍重'; pic='s3.jpg'; page='page3.html'; }else if ( bmi>27) { msg='月巴 月半'; pic='s4.jpg'; page='page4.html'; }else { msg='看到這表示程式出錯了'; } var str='';//整個要秀的資訊 str+='<h3>你的狀況是:'+msg+'</h3>';//顯示文字 str+='<img src="images/'+pic+'">';//圖片顯示 str+='<p><a href="' + page + '">參考我們的建議</a></p>';//顯示的網址 document.getElementById('message').innerHTML=str;// location.href=page; } </script> </head> <body> <h1>BMI 身體質量指數</h1> <form method="post" action=""><!--表單,action是要回傳至後台的網址,ex:action = "你要去的網頁.php"--> <p>身高: <input type="text" name="height" id="height" size="4"/>公分 <!--通常name和id會設定相同,一個後台用,一個前端用--> </p> <p>體重: <input type="text" name="weight" id="weight" size="4"/>公斤 </p> <p> <input type="button" name="button" id="button" value="計算BMI" onclick="calc_bmi();"/> <!--若要回傳至後台,input type="submit"--> </p> </form> <span id="message"></span><!--在按鈕下方顯示bmi計算後要顯示的資訊--> <p> </p> </body> </html> |
---------------------------------------------------------------------------------------------------------------
實作6:加入身高的判斷
確認輸入框的內容不能為空且不能為0
確認輸入框的內容不能為空且不能為0
1 2 3 4 5 6 7 8 9 10 11 12 | //輸入資料的檢查 if(isNaN(h) || h==0)//isNaN(h)表示h的值為空,且分母不能為0 { alert('身高有錯'); return false; } if(isNaN(w)) { alert('體重有錯'); return false; } |
沒有留言:
張貼留言