JSFiddle - React, Tailwind, and code Playground
HTML
<h1 style="text-align: center;">JavaScript 系列一:第6課 ── 認識資料型態與轉換</h1>
<div class="order">
<form class="data">
<div class="customer">
<label for="customer">訂購人姓名</label>
<input type="text" name="customer" id="customer" placeholder="訂購人姓名" required>
</div>
<div class="gender">
<label for="gender">服裝分類</label>
<select name="gender" id="gender" required>
<option value="" disabled selected>請選擇</option>
<option value="male">男裝</option>
<option value="female">女裝</option>
</select>
</div>
<div class="outfit">
<label for="outfit">服裝類型</label>
<select name="outfit" id="outfit" required>
<option value="" disabled selected>請選擇</option>
<option value="coat">外套</option>
<option value="top">上衣</option>
<option value="bottom">下身</option>
</select>
</div>
<div class="count">
<label for="count">訂購數量</label>
<input type="text" name="count" id="count" placeholder="數量" required>
</div>
</form>
<div class="buttons">
<button onclick="myFunc()">我要訂購</button>
<button onclick="myFunc2()">認識工廠</button>
</div>
<div class="order-check">
<h2>您的訂單</h2>
<p>顧客姓名:<span id="nameCheck"></span></p>
<p>服裝分類:<span id="genderCheck"></span></p>
<p>服裝類型:<span id="outfitCheck"></span></p>
<p>訂購數量:<span id="countCheck"></span></p>
<p>初步估價:<span id="price"></span></p>
</div>
</div>
CSS
.order {
width: 400px;
margin: 50px auto;
padding: 50px;
border: 1px solid #ccc;
border-radius: 10px;
}
.data {
margin-bottom: 20px;
}
.data>div {
margin: 20px;
}
.data,
.buttons {
width: 100%;
font-size: 0;
}
.data label,
.data input {
display: inline-block;
font-size: 18px;
vertical-align: middle;
}
.data label {
width: 30%;
}
.data input,
.data select {
width: 70%;
padding: 5px 10px;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 5px;
vertical-align: middle;
height: 30px;
}
button {
width: 50%;
padding: 5px 10px;
box-sizing: border-box;
border-radius: 5px;
background-color: transparent;
cursor: pointer;
font-size: 16px;
}
button:hover {
background-color: #ccc;
}
.order-check {
margin-top: 20px;
background-color: #253a7e;
box-sizing: border-box;
padding: 20px;
border-radius: 10px;
}
.order-check h2 {
text-align: center;
color: rgb(211, 211, 68);
}
.order-check p {
text-align: left;
color: rgb(211, 211, 68);
}
JavaScript
function myFunc() {
// 取得顧客姓名的值(字串)
let customerName = document.getElementById("customer").value;
// 取得性別、服裝類型物件
let gender = document.getElementById("gender");
let outfit = document.getElementById("outfit");
// 取得以選取的性別、服裝類型物件之index
let genderIndex = gender.selectedIndex;
let outfitIndex = outfit.selectedIndex;
// 取得以選取的性別、服裝類型物件之index對應的外顯文字
let genderText = gender.options[genderIndex].text;
let outfitText = outfit.options[outfitIndex].text;
// 取得數量的值(字串)
let count = document.getElementById("count").value;
// 將字串值轉成數字類型
let countNumber = parseInt(count);
// 定義男裝、女裝單價
let mUnit = 600;
let fUnit = 500;
if (customerName == "") {
alert("請輸入姓名");
} else if (gender.value == "") {
alert("請選擇服裝分類");
} else if (outfit.value == "") {
alert("請選擇服裝類型");
} else if (count == "" || count == "0") {
alert("請填入訂購數量");
} else {
document.getElementById("nameCheck").textContent = customerName;
document.getElementById("genderCheck").textContent = genderText;
document.getElementById("outfitCheck").textContent = outfitText;
document.getElementById("countCheck").textContent = countNumber;
alert(
customerName +
" 您好!謝謝您對我們的衣服有興趣!請致電 0987-654-321,會有專人提供您報價!"
);
if (gender.value == "male") {
// 顯示男裝報價總額
document.getElementById("price").textContent = countNumber * mUnit;
alert("最近剛好是工廠週年慶,只要您今天來電下單,我們將贈送您帥氣領帶!");
}
if (gender.value == "female") {
// 顯示女裝報價總額
document.getElementById("price").textContent = countNumber * fUnit;
alert("最近剛好是工廠週年慶,只要您今天來電下單,我們將贈送您美麗圍巾!");
}
}
}
function myFunc2() {
alert("我們工廠位於新北市,通過國際 ISO9001 認證,品質讓您放心!");
}