🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

✅ 实时输入表单验证

👇 就是这样的 👇

👀 示例演示

<form onsubmit="event.preventDefault()">
  电子邮箱:
  <input type="email" id="email" oninput="validateEmail()">
  <div class="error" id="emailError"></div>

  密码(至少 6 个字符):
  <input type="password" id="password" oninput="validatePassword()">
  <div class="error" id="passwordError"></div>

  <button type="submit">提交</button>
</form>

<style>
  .error {
    color: red;
    font-size: 0.9em;
    margin-bottom: 1em;
  }
</style>

<script>
function validateEmail() {
  const email = document.getElementById("email").value;
  const error = document.getElementById("emailError");
  error.textContent = email.includes("@") ? "" : "邮箱格式无效";
}

function validatePassword() {
  const pass = document.getElementById("password").value;
  const error = document.getElementById("passwordError");
  error.textContent = pass.length >= 6 ? "" : "密码至少需要 6 个字符";
}
</script>

✅ 此模板的用途与优势

  • 在输入时立即检查错误
  • 为用户提供友好的使用体验
  • 通过 JS 轻松实现验证逻辑
  • 结构简单,适合初学者自定义
  • 可直接用于实际项目的基础模板

🧩 即時驗證的實用應用與擴展技巧

即時驗證可以讓使用者在輸入時即刻得知是否輸入正確,這不僅提升了用戶體驗,也減少了提交表單前的焦慮。透過 oninput 事件觸發,能在不重新載入頁面的情況下立即檢查輸入值。

例如,validateEmail() 函式中使用 email.includes("@") 來判斷是否包含 @ 符號。雖然這種方法簡單有效,但若需更精準的格式判斷,可進一步使用 正則表達式(regex)

🔍 驗證邏輯的延伸

在處理密碼欄位時,除了 password.length >= 6 以外,也可以使用 /[A-Z]//\d/ 來檢查是否含有大寫字母或數字,進一步加強安全性。

顯示錯誤訊息時使用 innerText 能避免意外解析 HTML 標籤,同時保持訊息的簡潔與安全。每個欄位獨立顯示錯誤文字,有助於使用者快速釐清問題。

此範本適合作為前端驗證的起點,未來可彈性擴充至其他欄位,例如電話、姓名、地址等,支援實際專案的各種需求。