JSFiddle - React, Tailwind, and code Playground
by ZooeyLai
HTML
<div class="wrap">
<div class="form">
<div class="form-group">
<label for="name" class="form-label">顧客姓名</label>
<input type="text" id="name" class="form-input" placeholder="請輸入姓名">
</div>
<div class="form-group">
<label for="gender" class="form-label">服裝分類</label>
<select name="gender" id="gender" class="form-input">
<option value="" selected disabled>分類</option>
<option value="male">男裝</option>
<option value="female">女裝</option>
</select>
</div>
<div class="form-group">
<label for="itemType" class="form-label">服裝類型</label>
<select name="itemType" id="itemType" class="form-input">
<option value="" selected disabled>類型</option>
<option value="coats">外套</option>
<option value="tops">上衣</option>
<option value="bottoms">下身</option>
</select>
</div>
</div>
<div class="button-group">
<button class="btn btn-primary" onclick="myOrder()">我要訂購</button>
<button class="btn btn-outline-primary" onclick="aboutFactory()">認識工廠</button>
</div>
<div class="order-info">
<h3 class="h3">您的訂單</h3>
<div class="list-group">
<span>顧客姓名:</span>
<span id="customer"></span>
</div>
<div class="list-group">
<span>服裝分類:</span>
<span id="orderGender"></span>
</div>
<div class="list-group">
<span>服裝類型:</span>
<span id="orderType"></span>
</div>
</div>
</div>
CSS
:root{
--primary: #4f46e5;
--gray: #e2e8f0;
--white: #fff;
}
*{
box-sizing: border-box;
font-size: 1rem;
}
.h3{
margin: 0;
margin-bottom: 1rem;
font-size: 1.5rem;
text-align: center;
}
.wrap{
width: 80%;
display: flex;
justify-content: center;
gap: 20px;
margin: 0 auto;
align-items: center;
flex-flow: column;
}
.button-group{
display: flex;
gap: 20px;
}
.btn{
padding: 0.5rem 1rem;
border: 2px solid transparent;
border-radius: 0.25rem;
background-color: var(--gray);
color: #475569;
cursor: pointer;
}
.btn:hover{
transform: scale(1.1);
transition: all 0.3s;
}
.btn-primary{
background-color: var(--primary);
color: var(--white);
}
.btn-primary:hover{
background-color: #3730a3;
}
.btn-outline-primary{
border-color: var(--primary);
color: var(--primary);
background-color: var(--white);
}
.btn-outline-primary:hover{
background-color: var(--primary);
color: var(--white);
}
.form-group{
margin-bottom: 1rem;
display: flex;
flex-flow: column;
}
.form-label{
font-size: 0.75rem;
margin-bottom: 0.25rem;
}
.form-input{
border: 1px solid #94a3b8;
padding: 0.5rem 1rem;
border-radius: 0.25rem;
}
.form-input:focus{
border-color: var(--primary);
box-shadow: 0px 0px 0px 3px rgb(79 70 229 / 40%);
outline: none;
}
.order-info{
width: 100%;
background: #e2e8f0;
padding: 1.25rem;
border-radius: 0.25rem;
display: flex;
flex-flow: column;
}
.list-group{
margin-bottom: 1rem;
}
JavaScript
function myOrder(){
let userName = document.getElementById('name').value;
// 取得分類索引
let gender = document.getElementById('gender');
let genderIndex = gender.selectedIndex;
// 取得分類value
let genderValue = gender.options[genderIndex].value;
// 取得分類文字
let genderText = gender.options[genderIndex].text;
// 取得類型索引
let itemType = document.getElementById('itemType');
let itemTypeIndex = itemType.selectedIndex;
// 取得類型value
let itemTypeValue = itemType.options[itemTypeIndex].value;
// 取得類型文字
let itemTypeText = itemType.options[itemTypeIndex].text;
if(userName === ''){
return alert('請輸入姓名')
}
alert(userName + '您好!謝謝您對我們的衣服有興趣!請致電 0987-654-321,會有專人提供您報價!');
document.getElementById('customer').textContent = userName;
document.getElementById('orderGender').textContent = genderText;
document.getElementById('orderType').textContent = itemTypeText;
if (genderValue === 'male'){
return alert('最近剛好是工廠週年慶,只要您今天來電下單,我們將贈送您帥氣領帶!')
}else{
return alert('最近剛好是工廠週年慶,只要您今天來電下單,我們將贈送您美麗圍巾!')
}
}
function aboutFactory(){
alert('我們工廠位於新北市,通過國際 ISO9001 認證,品質讓您放心!');
}