1. 程式人生 > >JS程式設計小題目詳解(接上一篇)

JS程式設計小題目詳解(接上一篇)

一、題目:

編寫一個網頁檔案,使用一個表單讓使用者填寫購貨訂單。填寫的資訊包括姓名、電話、商品名稱、單價、數量和金額。當提交表單時,要求:

(1)商品名稱和單價只能讓使用者選擇;

(2)數量為0時不予提交;

(3)金額在提交時自動計算,並與所填的"金額"比較;

(4)如(2)、(3)有錯誤時,則返回已填購貨單,並提示錯誤位置和原因;如果沒有錯誤,則返回已成功提交的頁面。  

二、結果截圖(先給出截圖看看網頁結構是怎麼樣的,更有利於理解程式碼)

1、填寫頁面

2、當填寫數量為空時(分為兩種情況,一種是使用者填了0,一種是使用者根本就沒有在這一行填資訊,這種情況會先後提示兩種錯誤,在下面截圖提示數量不為空點選確定後還會提示金額不符)

3、金額不相符時

4、資訊成功頁面

三、程式碼詳解

1、資訊提交成功頁面(這個沒什麼好說的,記住名字是new.html就夠了,後面跳轉用的上,當然你也可以起別的名字,只要跳轉的時候正確填寫就行了)

<!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">         <title></title>     </head>     <body>         <h1>資訊提交成功!</h1>     </body> </html>

2、資訊填寫介面(註釋我就直接在要註釋的行後面用//表示了,想要貼上僅僅是程式碼的小夥伴可以去上一篇部落格貼上)

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>購貨訂單</title> <script language="javascript"> function result(){ var count=document.getElementById("count"); var b;//這裡b是一個布林型別的變數,用於之後的比較,但是JS中變數的宣告用var就行,不用boolean哦

if(count.value==0||count.value==""){alert("填寫數量行出錯,數量不能為空");b=false;}//注意比較的是value,不要直接用count進行比較,而且value後面不要加括號,這裡我是判斷了兩種情況,上面截圖時已經作出了說明 var total=document.getElementById("total");//代表填的總金額 var price=document.getElementsByName("spot");//這裡用的方法是getElementsByName,因為我們想實現的是單選框,所以每個單選框選項要設定相同的name值,在下面遇到的時候我還會提醒一下 for(var i=0;i<price.length;i++)//得到所有name為spot的元素的一個數組 {     if(price[i].checked==true)//判斷選了哪一個     {     var dan=5-i; //代表單價     }     } if((total.value)==(count.value)*dan){b=true;} else{alert("數量和單價乘積不等於所填金額,請重新填"); b=false;} if(b==true) {     window.location.href="new.html";//跳轉到成功介面 } } </script> </head> <body> <font size=8 color=blue> <h1 align=center size=7>購貨訂單</h1> </font> <font size=5 color=red> <form  name="biaodan" > 請輸入姓名: <input type="text" name="yourname" id="name"> <br/><br/> 請填寫電話號: <input type="text" name="yourphone" id="phone"> <br/><br/> 請填寫數量: <input type="text" name="yourhowmany" id="count"> <br/><br/> 請填寫金額: <input type="text" name="yourmoney" id="total"> <br/><br/> 請填寫商品名稱: <font size=5 color=red> <select name="selects" size=4>//size代表你可以看見四個選項 <option value="apple">蘋果</option> <option value="pear">梨</option> <option value="banada">香蕉</option> <option value="xigua">西瓜</option> <option value="mangguo">芒果</option> </select> </font> <br/><br/> 請填寫單價: <input type="radio" name="spot" value="sing">5元/斤//要實現單選框,所以每個name值要一樣,小夥伴可以試著把他們的name值改成不一樣的就會發現可以實現多選 <input type="radio" name="spot" value="sport">4元/斤 <input type="radio" name="spot" value="travel">3元/斤 <br/><br/><br/> <input type="button" value="提交" onclick="result()"> </form> </font> </body> </html>

4、總結

很多標籤和函式看著很簡單,但是自己上手就會想不起來,出現各種各樣的小問題,所以大家還是要自己試一試,我寫的只是實現了題目的要求,小夥伴也可以自己加一些別的條件,比如名字不能為空,手機號碼必須11位等約束來進一步改進程式碼。

這一題的分享就到這兒了,歡迎交流反饋哦^^