HTML Academy · Pelajaran

Pertukaran Pengesahan HTML5 dengan JavaScript

Tentukan masa untuk bergantung pada pengesahan HTML5 berbanding JavaScript tersuai

Pelajaran 4 daripada 414 langkah

Pertukaran Pengesahan HTML5 dengan JavaScript ialah pelajaran HTML Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran HTML Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus HTML Academy merangkumi sejumlah 4 pelajaran.

Dua Pendekatan untuk Pengesahan

Dua pendekatan untuk pengesahan form:

  • Pengesahan asli HTML5 — atribut terbina dalam dan antara muka pelayar
  • Pengesahan JavaScript — logik, mesej dan masa tersuai

Setiap pendekatan mempunyai kelebihan. Kebanyakan form dalam dunia sebenar menggabungkan kedua-duanya.

Kekuatan Pengesahan HTML5

Kelebihan pengesahan asli HTML5:

  • Tidak memerlukan JavaScript
  • Berfungsi tanpa JS (peningkatan progresif)
  • Mesej ralat pelayar terbina dalam (disetempatkan!)
  • Papan kekunci mudah alih menggunakan atribut type (e-mel, telefon, nombor)
  • Kelas pseudo CSS :valid / :invalid

Kelemahan Pengesahan HTML5

Batasan pengesahan asli HTML5:

  • Penggayaan mesej ralat terhad kepada lalai pelayar
  • Hanya mengesahkan semasa penghantaran (bukan apabila fokus beralih atau semasa input)
  • Tidak dapat mengesahkan peraturan merentas medan (padanan kata laluan)
  • Tidak dapat melakukan pengesahan tak segerak (memeriksa pada pelayan sama ada nama pengguna telah diambil)
  • Mesej ralat berbeza mengikut pelayar dan bahasa OS

Kekuatan Pengesahan JavaScript

Kelebihan pengesahan JavaScript:

  • Kawalan penuh terhadap teks dan penggayaan mesej ralat
  • Masa tersuai (apabila fokus beralih, semasa input, semasa penghantaran)
  • Pengesahan merentas medan (pengesahan kata laluan)
  • Pengesahan tak segerak (memeriksa ketersediaan nama pengguna)
  • Tingkah laku yang konsisten merentas pelayar

Kelemahan Pengesahan JavaScript

Batasan pengesahan yang hanya menggunakan JavaScript:

  • Gagal jika JavaScript dinyahdayakan atau disekat
  • Lebih banyak kod untuk ditulis dan diselenggara
  • Kebolehcapaian memerlukan pelaksanaan ARIA yang teliti
  • Mencipta semula perkara yang dilakukan oleh pelayar secara asli

Pendekatan Hibrid

Amalan terbaik: gabungkan kedua-dua pendekatan:

<form novalidate>   <!-- disable default UI, keep semantics -->
  <input type="email" required pattern="...">
  <!-- HTML attributes: define the constraints -->
  <!-- novalidate: custom JS shows the errors -->
</form>

<script>
// Use Constraint Validation API to read the validity state:
if (input.validity.valueMissing) showError('Required');
if (input.validity.typeMismatch) showError('Invalid email');
</script>

Pengesahan pada Pelayan Sentiasa

Walau apa pun pendekatan pada klien yang anda gunakan, sentiasa lakukan pengesahan pada pelayan:

  • Pengguna boleh menyahdayakan JavaScript
  • DevTools pelayar boleh mengubah suai permintaan
  • Pihak berniat jahat sengaja memintas pengesahan klien
  • Pengesahan pelayan ialah pintu masuk keselamatan; pengesahan klien ialah kemasan pengalaman pengguna

Pengalaman Pengguna Maklum Balas Masa Nyata

Amalan terbaik untuk masa maklum balas pengesahan yang disokong oleh kajian:

  • Jangan paparkan ralat sebelum pengguna berinteraksi dengan medan tersebut
  • Lakukan pengesahan apabila fokus beralih (meninggalkan medan) untuk ralat awal
  • Kosongkan ralat dengan serta-merta apabila pengguna membetulkannya (semasa input)
  • Paparkan penunjuk kejayaan (tanda semak hijau) apabila medan sah

Pengendalian Ralat yang Boleh Diakses

Senarai semak untuk ralat form yang boleh diakses:

  • Mesej ralat hendaklah berupa teks, bukan warna semata-mata
  • Gunakan role="alert" atau aria-live="assertive" untuk bekas ralat
  • Tetapkan aria-invalid="true" pada input yang tidak sah
  • Pautkan input kepada mesej ralat dengan aria-describedby
  • Alihkan fokus kepada ralat pertama selepas penghantaran yang gagal

Corak HTML5 berbanding Ungkapan Nalar Pelayan

Berhati-hati dengan perbezaan antara corak HTML5 dan ungkapan nalar pelayan:

<!-- HTML5 pattern: implicitly anchored at start AND end -->
<input pattern="[a-z]+">  <!-- matches ONLY lowercase letters, nothing else -->

// Server-side (Python, Node, PHP):
// /^[a-z]+$/ === HTML5 pattern equivalent
// [a-z]+ would also match partial strings on server
// Keep server regex consistent with HTML pattern

Pustaka Pengesahan

Bila hendak menggunakan pustaka pengesahan:

  • Form ringkas — atribut HTML5 + API Pengesahan Kekangan sudah mencukupi
  • Form kompleks — React Hook Form, Formik, Vee-Validate
  • Pengesahan skema — Zod atau Yup (juga berfungsi pada pelayan)
  • Panduan berbilang langkah — sentiasa gunakan pustaka untuk pengurusan keadaan

Ringkasan Peningkatan Progresif

Susunan pengesahan yang ideal dari bawah ke atas:

  1. Kekangan HTML5 — sentiasa tersedia (berfungsi tanpa JS)
  2. CSS :valid/:invalid — maklum balas visual tanpa JS
  3. API Pengesahan Kekangan dengan novalidate — pengalaman pengguna yang lebih baik dengan JS
  4. Pengesahan tak segerak tersuai — peraturan perniagaan yang kompleks
  5. Pengesahan pelayan — pintu masuk keselamatan

Semakan Ringkas

Jenis pengesahan manakah yang menjadi pintu masuk keselamatan sebenar dan tidak boleh dipintas?

Ringkasan: Pertukaran dalam Pengesahan

Ringkasan strategi pengesahan:

  • Asli HTML5 — ringkas, progresif, penggayaan terhad
  • JavaScript — kawalan penuh, boleh diakses, tanpa JS = tiada pengesahan
  • Hibrid — kekangan HTML5 + novalidate + ralat JS tersuai
  • Pada pelayan — diperlukan untuk keselamatan, bukan pilihan
  • Sahkan apabila fokus beralih; kosongkan semasa input; fokuskan ralat pertama semasa penghantaran
Percuma untuk bermula

Pelajari HTML dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
40
Pelajaran
159

Soalan Lazim

Adakah pelajaran “Pertukaran Pengesahan HTML5 dengan JavaScript” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran HTML Academy, termasuk “Pertukaran Pengesahan HTML5 dengan JavaScript”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus HTML Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pertukaran Pengesahan HTML5 dengan JavaScript”?

Tentukan masa untuk bergantung pada pengesahan HTML5 berbanding JavaScript tersuai Anda berlatih HTML Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan HTML Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran HTML Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Pertukaran Pengesahan HTML5 dengan JavaScript” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran HTML Academy ini?

Ya. Setiap pelajaran HTML Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. required pattern min max dan maxlength
  2. Atribut novalidate
  3. Asas API Pengesahan Kekangan
  4. Pertukaran Pengesahan HTML5 dengan JavaScript
← Kembali ke HTML Academy