iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
Modern Web

程式煉金術:Bug退散!前端驅魔記系列 第 15

Day 15 - 表單進階屬性的魔法

  • 分享至 

  • xImage
  •  

學習目標

  • 認識 HTML5 新增的表單屬性
  • 熟悉 placeholderrequiredreadonlydisabledautocomplete
  • 學會使用 minmaxstep 控制數字輸入範圍
  • 了解 multipleaccept 在檔案上傳中的應用

重點觀念(讓表單更聰明)

  • placeholder 不是 label:僅作輔助提示,主要還是要搭配 <label>
  • required:設定必填,瀏覽器自帶驗證。
  • readonly vs disabled:前者可送出資料但不能編輯;後者不可編輯且不會送出。
  • autocomplete:能記住使用者輸入習慣,提升體驗。
  • 數字輸入控制minmaxstep 讓數字欄位更精準。

表單示範

<body>
  <h1>表單進階屬性示範</h1>
  <form>
    <label for="username">使用者名稱:</label>
    <input type="text" id="username" name="username" placeholder="輸入名稱" required><br><br>

    <label for="age">年齡:</label>
    <input type="number" id="age" name="age" min="18" max="99" step="1"><br><br>

    <label for="email">Email:</label>
    <input type="email" id="email" name="email" autocomplete="on"><br><br>

    <label for="note">備註:</label>
    <input type="text" id="note" name="note" value="唯讀內容" readonly><br><br>

    <label for="upload">上傳檔案:</label>
    <input type="file" id="upload" name="upload" accept=".jpg,.png" multiple><br><br>

    <button type="submit">送出</button>
  </form>
</body>

image

常見錯誤與修正

  • ❌ 把 placeholder 當成唯一提示 → ✅ 加上 <label>,提升無障礙體驗
  • ❌ 忘記 required → ✅ 關鍵欄位應強制填寫
  • ❌ 混淆 readonlydisabled → ✅ 分清送出行為差異
  • ❌ 檔案上傳未限制格式 → ✅ 使用 accept 避免上傳錯誤檔案

今日小挑戰(可交付)

  • [ ] 建立一個含有 required 的登入表單
  • [ ] 嘗試設定數字欄位的 minmaxstep
  • [ ] 新增一個唯讀欄位與禁用欄位,觀察差異
  • [ ] 做一個檔案上傳欄位,限制只能上傳圖片
  • [ ] 測試 autocomplete 的效果

DAY15 心得

今天深入學習表單進階屬性,發現很多小細節能大幅提升使用者體驗。像 required 這種基本設定,就能避免漏填資料;而 readonlydisabled 的差異,也讓我更清楚在不同情境下該怎麼用。

我覺得 autocomplete 是一個被低估的功能,它能自動帶入使用者先前輸入的資料,對表單填寫效率幫助很大。而在檔案上傳中,透過 acceptmultiple,就能有效控制格式與數量,避免使用者上傳錯誤的東西。

這些小小的屬性就像「潤滑劑」,雖然不會改變大方向,但卻能讓表單的體驗變得更加順暢。未來如果搭配 JavaScript 驗證,應該能打造更完整的互動效果。


上一篇
Day 14 - 語意化標籤的魔法
下一篇
Day 16 - 表單進一步互動的魔法
系列文
程式煉金術:Bug退散!前端驅魔記18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言