Sebelum mengirimkan data ke server, penting untuk memastikan semua kontrol formulir yang diperlukan diisi, dalam format yang benar. Ini disebut validasi formulir sisi klien, dan membantu memastikan data yang dikirimkan cocok dengan persyaratan yang ditetapkan dalam berbagai kontrol formulir. Artikel ini memandu Anda melalui konsep dasar dan contoh validasi formulir sisi klien Show Validasi sisi klien adalah pemeriksaan awal dan fitur penting dari pengalaman pengguna yang baik; . Jika sampai ke server dan kemudian ditolak, penundaan yang terlihat disebabkan oleh perjalanan bolak-balik ke server dan kemudian kembali ke sisi klien untuk memberi tahu pengguna untuk memperbaiki data mereka Namun, validasi sisi klien tidak boleh dianggap sebagai tindakan keamanan yang lengkap. Aplikasi Anda harus selalu melakukan pemeriksaan keamanan pada data yang dikirimkan formulir apa pun di sisi server dan juga sisi klien, karena validasi sisi klien terlalu mudah untuk dilewati, sehingga pengguna jahat masih dapat dengan mudah mengirim data buruk ke server Anda. Baca Keamanan situs web untuk mengetahui apa yang mungkin terjadi; Buka situs populer mana pun dengan formulir pendaftaran, dan Anda akan melihat bahwa mereka memberikan umpan balik saat Anda tidak memasukkan data Anda dalam format yang mereka harapkan. Anda akan mendapatkan pesan seperti
Ini disebut validasi formulir. Saat Anda memasukkan data, browser dan/atau server web akan memeriksa apakah data dalam format yang benar dan dalam batasan yang ditetapkan oleh aplikasi. Validasi yang dilakukan di browser disebut validasi sisi klien, sedangkan validasi yang dilakukan di server disebut validasi sisi server. Dalam bab ini kami berfokus pada validasi sisi klien Jika informasi diformat dengan benar, aplikasi memungkinkan data dikirimkan ke server dan (biasanya) disimpan dalam database; Kami ingin mengisi formulir web semudah mungkin. Jadi mengapa kami bersikeras untuk memvalidasi formulir kami?
Ada dua jenis validasi sisi klien yang akan Anda temui di web
Salah satu fitur terpenting dari kontrol formulir modern adalah kemampuan untuk memvalidasi sebagian besar data pengguna tanpa bergantung pada JavaScript. Ini dilakukan dengan menggunakan atribut validasi pada elemen formulir. Kami telah melihat banyak dari ini di awal kursus, tetapi untuk rekap
Jika data yang dimasukkan dalam kolom formulir mengikuti semua aturan yang ditentukan oleh atribut di atas, maka dianggap valid. Jika tidak, maka dianggap tidak sah Ketika suatu elemen valid, hal-hal berikut ini benar
Ketika suatu elemen tidak valid, hal-hal berikut ini benar
Catatan. Ada beberapa kesalahan yang akan mencegah pengiriman formulir, termasuk 8, 9, 0 atau _1, 2, 3 atau 4, 5, 12_______Di bagian ini, kita akan menguji beberapa atribut yang telah kita bahas di atas Mari kita mulai dengan contoh sederhana. masukan yang memungkinkan Anda untuk memilih apakah Anda lebih suka pisang atau ceri. Contoh ini melibatkan teks sederhana _8 dengan 9 terkait dan kiriman 0. Temukan kode sumber di GitHub di awal buah. html dan contoh langsung di bawah ini
Untuk memulai, buat salinan _1 di direktori baru di hard drive AndaFitur validasi HTML yang paling sederhana adalah atribut 8. Untuk membuat input wajib, tambahkan atribut ini ke elemen. Saat atribut ini disetel, elemen cocok dengan kelas semu ________22______3 UI dan formulir tidak akan dikirim, menampilkan pesan kesalahan saat pengiriman saat input kosong. Saat kosong, input juga akan dianggap tidak valid, cocok dengan pseudo-class 6 UITambahkan atribut 8 ke input Anda, seperti yang ditunjukkan di bawah ini
Perhatikan CSS yang disertakan dalam file contoh
CSS ini menyebabkan input memiliki batas putus-putus merah saat tidak valid dan batas hitam pekat yang lebih halus saat valid. Kami juga menambahkan gradien latar belakang saat input diperlukan dan tidak valid. Cobalah perilaku baru dalam contoh di bawah ini Catatan. Anda dapat menemukan contoh ini langsung di GitHub sebagai validasi buah. html. Lihat juga kode sumbernya Coba kirimkan formulir tanpa nilai. Perhatikan bagaimana input yang tidak valid mendapat fokus, pesan kesalahan default ("Silakan isi kolom ini") muncul, dan formulir dicegah untuk dikirim Kehadiran atribut _8 pada elemen apa pun yang mendukung atribut ini berarti elemen tersebut cocok dengan pseudo-class 3 apakah itu memiliki nilai atau tidak. Jika _8 tidak memiliki nilai, 9 akan cocok dengan pseudo-class 6Catatan. Untuk pengalaman pengguna yang baik, beri tahu pengguna kapan bidang formulir diperlukan. Ini bukan hanya pengalaman pengguna yang baik, tetapi juga diwajibkan oleh pedoman aksesibilitas WCAG. Juga, hanya minta pengguna untuk memasukkan data yang benar-benar Anda butuhkan. Misalnya, mengapa Anda benar-benar perlu mengetahui jenis kelamin atau gelar seseorang? Fitur validasi berguna lainnya adalah atribut _4 , yang mengharapkan Ekspresi Reguler sebagai nilainya. Ekspresi reguler (regex) adalah pola yang dapat digunakan untuk mencocokkan kombinasi karakter dalam string teks, sehingga regexp ideal untuk validasi formulir dan melayani berbagai kegunaan lain dalam JavaScriptRegexp cukup rumit, dan kami tidak bermaksud untuk mengajari Anda secara mendalam di artikel ini. Di bawah ini adalah beberapa contoh untuk memberi Anda ide dasar tentang cara kerjanya
Masih banyak lagi kemungkinan yang tidak kami bahas di sini. Untuk daftar lengkap dan banyak contoh, lihat dokumentasi Ekspresi reguler kami Mari kita terapkan sebuah contoh. Perbarui HTML Anda untuk menambahkan atribut _4 seperti ini
Ini memberi kami pembaruan berikut — cobalah Catatan. Anda dapat menemukan contoh ini langsung di GitHub sebagai pola buah. html (lihat juga kode sumber. ) Dalam contoh ini, elemen _8 menerima salah satu dari empat kemungkinan nilai. string "banana", "Banana", "cherry", atau "Cherry". Ekspresi reguler peka terhadap huruf besar-kecil, tetapi kami telah membuatnya mendukung versi huruf besar dan huruf kecil menggunakan pola "Aa" tambahan yang bersarang di dalam tanda kurung sikuPada titik ini, coba ubah nilai di dalam atribut 4 menjadi sama dengan beberapa contoh yang Anda lihat sebelumnya, dan lihat bagaimana pengaruhnya terhadap nilai yang dapat Anda masukkan untuk membuat nilai input valid. Cobalah menulis sendiri, dan lihat bagaimana kelanjutannya. Jadikan mereka terkait dengan buah jika memungkinkan sehingga contoh Anda masuk akalJika nilai tidak kosong dari _8 tidak cocok dengan pola ekspresi reguler, 9 akan cocok dengan kelas semu 6Catatan. Beberapa tipe elemen _8 tidak memerlukan atribut 4 untuk divalidasi terhadap ekspresi reguler. Menentukan jenis _0, misalnya, akan memvalidasi nilai input terhadap pola alamat email yang terbentuk dengan baik atau pola yang cocok dengan daftar alamat email yang dipisahkan koma jika memiliki atribut 1Catatan. Elemen 2 tidak mendukung atribut 4Anda dapat membatasi panjang karakter semua bidang teks yang dibuat oleh 8 atau 2 dengan menggunakan atribut 9 dan 0. Bidang tidak valid jika memiliki nilai dan nilai tersebut memiliki karakter lebih sedikit dari nilai 9 atau lebih dari nilai 0Peramban sering kali tidak mengizinkan pengguna mengetik nilai yang lebih panjang dari yang diharapkan ke dalam bidang teks. Pengalaman pengguna yang lebih baik daripada hanya menggunakan _0 juga memberikan umpan balik jumlah karakter dengan cara yang dapat diakses dan membiarkan mereka mengedit konten mereka sesuai ukuran. Contohnya adalah batas karakter yang terlihat di Twitter saat menge-Tweet. JavaScript, termasuk solusi yang menggunakan _0, dapat digunakan untuk menyediakan iniUntuk bidang angka (mis. e. 02), atribut 1 dan 2 dapat digunakan untuk memberikan rentang nilai yang valid. Jika bidang berisi nilai di luar rentang ini, itu akan menjadi tidak validMari kita lihat contoh lain. Buat salinan baru dari awal buah. html Sekarang hapus isi elemen _05, dan ganti dengan yang berikut ini
Berikut adalah contoh yang berjalan langsung Catatan. Anda dapat menemukan contoh ini langsung di GitHub sebagai panjang buah. html. Lihat juga kode sumbernya Catatan. 02 (dan jenis lainnya, seperti 13 dan 14) juga dapat menggunakan atribut 15, yang menentukan berapa kenaikan nilai yang akan naik atau turun saat kontrol input digunakan (seperti tombol angka naik dan turun). Dalam contoh di atas, kami tidak menyertakan atribut ________0______15, jadi nilai defaultnya adalah 17. Ini berarti mengapung, seperti 3. 2, juga akan ditampilkan sebagai tidak validBerikut adalah contoh lengkap untuk menunjukkan penggunaan fitur validasi bawaan HTML. Pertama, beberapa HTML
Dan sekarang beberapa CSS untuk menata HTML
Ini diterjemahkan sebagai berikut Lihat daftar lengkap atribut yang dapat digunakan untuk membatasi nilai input dan tipe input yang mendukungnya Catatan. Anda dapat menemukan contoh ini langsung di GitHub sebagai contoh lengkap. html (lihat juga kode sumber. ) Anda harus menggunakan JavaScript jika ingin mengontrol tampilan dan nuansa pesan kesalahan asli. Pada bagian ini kita akan melihat berbagai cara untuk melakukan ini Constraint Validation API terdiri dari sekumpulan metode dan properti yang tersedia pada antarmuka DOM elemen formulir berikut
Constraint Validation API menyediakan properti berikut pada elemen di atas
Constraint Validation API juga menyediakan metode berikut pada elemen di atas dan elemen 84
Menerapkan pesan kesalahan yang disesuaikanSeperti yang Anda lihat di contoh kendala validasi HTML sebelumnya, setiap kali pengguna mencoba mengirimkan formulir yang tidak valid, browser akan menampilkan pesan kesalahan. Cara pesan ini ditampilkan tergantung pada browser Pesan otomatis ini memiliki dua kelemahan
Menyesuaikan pesan error ini adalah salah satu kasus penggunaan yang paling umum dari Constraint Validation API. Mari kita bekerja melalui contoh sederhana bagaimana melakukan ini Kita akan mulai dengan beberapa HTML sederhana (jangan ragu untuk meletakkannya di file HTML kosong; gunakan salinan baru dari fruit-start. html sebagai dasar, jika Anda suka) 0Dan tambahkan JavaScript berikut ke halaman _1Di sini kita menyimpan referensi ke masukan email, lalu menambahkan pendengar acara ke dalamnya yang menjalankan kode yang terkandung setiap kali nilai di dalam masukan diubah Di dalam kode yang terkandung, kami memeriksa apakah properti 93 input email mengembalikan 37, yang berarti bahwa nilai yang terkandung tidak cocok dengan pola untuk alamat email yang terbentuk dengan baik. Jika demikian, kami memanggil metode 95 dengan pesan khusus. Ini menjadikan input tidak valid, sehingga ketika Anda mencoba mengirimkan formulir, pengiriman gagal dan pesan kesalahan khusus ditampilkanJika properti _93 mengembalikan 32, kita memanggil metode 95 dengan string kosong. Ini menjadikan input valid, sehingga formulir akan dikirimAnda dapat mencobanya di bawah ini Catatan. Anda dapat menemukan contoh ini langsung di GitHub sebagai pesan kesalahan khusus. html (lihat juga kode sumber. ) Contoh yang lebih detailSekarang kita telah melihat contoh yang sangat sederhana, mari kita lihat bagaimana kita dapat menggunakan API ini untuk membuat validasi kustom yang sedikit lebih rumit Pertama, HTML. Sekali lagi, jangan ragu untuk membangun ini bersama kami _2Formulir sederhana ini menggunakan atribut untuk mematikan validasi otomatis browser; . Namun, ini tidak menonaktifkan dukungan untuk API validasi kendala atau penerapan kelas semu CSS seperti 5, dll. Artinya, meskipun browser tidak secara otomatis memeriksa validitas formulir sebelum mengirimkan datanya, Anda masih dapat melakukannya sendiri dan mengatur gaya formulir sesuai dengan itu.Masukan kami untuk memvalidasi adalah _01, yaitu 8, dan memiliki 9 dari 8 karakter. Mari kita periksa menggunakan kode kita sendiri, dan tampilkan pesan kesalahan khusus untuk masing-masingKami bertujuan untuk menampilkan pesan kesalahan di dalam elemen 04. Atribut _05 disetel pada 04 itu untuk memastikan bahwa pesan kesalahan khusus kami akan disajikan kepada semua orang, termasuk dibacakan kepada pengguna pembaca layarCatatan. Poin utama di sini adalah pengaturan atribut _99 pada formulir adalah yang menghentikan formulir untuk menampilkan gelembung pesan kesalahannya sendiri, dan memungkinkan kita untuk menampilkan pesan kesalahan khusus di DOM dengan cara yang kita pilih sendiriSekarang ke beberapa CSS dasar untuk sedikit meningkatkan tampilan formulir, dan memberikan beberapa umpan balik visual saat input data tidak valid _3Sekarang mari kita lihat JavaScript yang mengimplementasikan validasi kesalahan kustom _4Komentar menjelaskan banyak hal dengan cukup baik, tetapi singkat
Inilah hasil langsungnya Catatan. Anda dapat menemukan contoh ini langsung di GitHub sebagai detail-custom-validation. html. Lihat juga kode sumbernya API validasi kendala memberi Anda alat yang ampuh untuk menangani validasi formulir, memungkinkan Anda memiliki kontrol besar atas antarmuka pengguna di atas dan di luar apa yang dapat Anda lakukan dengan HTML dan CSS saja Dalam beberapa kasus, seperti kontrol khusus, Anda tidak akan dapat atau tidak ingin menggunakan API Validasi Kendala. Anda masih dapat menggunakan JavaScript untuk memvalidasi formulir Anda, tetapi Anda hanya perlu menulis sendiri Untuk memvalidasi formulir, tanyakan pada diri sendiri beberapa pertanyaan Validasi seperti apa yang harus saya lakukan?Anda perlu menentukan cara memvalidasi data Anda. operasi string, konversi tipe, ekspresi reguler, dan sebagainya. Terserah kamu Apa yang harus saya lakukan jika formulir tidak divalidasi?Ini jelas masalah UI. Anda harus memutuskan bagaimana bentuk akan berperilaku. Apakah formulir tetap mengirim data? Bagaimana saya dapat membantu pengguna memperbaiki data yang tidak valid?Untuk mengurangi frustrasi pengguna, sangat penting untuk memberikan informasi bermanfaat sebanyak mungkin untuk memandu mereka dalam memperbaiki masukan mereka. Anda harus menawarkan saran di awal agar mereka tahu apa yang diharapkan, serta menghapus pesan kesalahan. Jika Anda ingin mempelajari persyaratan UI validasi formulir, berikut adalah beberapa artikel bermanfaat yang harus Anda baca
Contoh yang tidak menggunakan API validasi kendalaUntuk mengilustrasikannya, berikut ini adalah versi sederhana dari contoh sebelumnya tanpa Constraint Validation API HTML hampir sama; 5Demikian pula, CSS tidak perlu banyak berubah; _6Perubahan besar ada pada kode JavaScript, yang perlu melakukan lebih banyak pekerjaan berat _7Hasilnya terlihat seperti ini Seperti yang Anda lihat, tidak sulit untuk membuat sistem validasi sendiri. Bagian yang sulit adalah membuatnya cukup umum untuk digunakan lintas platform dan pada formulir apa pun yang mungkin Anda buat. Ada banyak pustaka yang tersedia untuk melakukan validasi formulir, seperti Validasi. js Anda telah mencapai bagian akhir artikel ini, tetapi dapatkah Anda mengingat informasi yang paling penting? . Validasi formulir Validasi formulir sisi klien terkadang memerlukan JavaScript jika Anda ingin menyesuaikan gaya dan pesan kesalahan, tetapi selalu mengharuskan Anda untuk memikirkan pengguna dengan hati-hati. Selalu ingat untuk membantu pengguna Anda memperbaiki data yang mereka berikan. Untuk itu, pastikan untuk
Setelah Anda memeriksa bahwa formulir diisi dengan benar, formulir dapat dikirimkan. Kami akan membahas pengiriman data formulir berikutnya Bagaimana cara memeriksa bidang yang diperlukan dalam JavaScript?Memeriksa bidang yang tidak kosong . Fungsi Javascript untuk memeriksa apakah suatu bidang kosong atau tidak // Jika panjang string elemen adalah 0 maka tampilkan pesan helper function required(inputtx) { if (inputtx. nilai. panjang == 0) { waspada("pesan"); . Flow chart Kode HTML < Bagaimana cara memanggil validasi bidang yang diperlukan dengan JavaScript?Validasi Formulir HTML Otomatis . Apa yang diperlukan validasi lapangan?ASP. Kontrol Validator Bidang Diperlukan .NET
. Ini akan menimbulkan kesalahan jika pengguna membiarkan kontrol input kosong. Ini digunakan untuk mengamanatkan kontrol formulir yang diperlukan dan membatasi pengguna untuk menyediakan data. This validator is used to make an input control required. It will throw an error if user leaves input control empty. It is used to mandate form control required and restrict the user to provide data.
Bagaimana cara memeriksa validasi pada pengiriman formulir di JavaScript?Saat pengguna mengklik tombol kirim formulir, acara onsubmit JavaScript akan memanggil fungsi. Dalam contoh kita, kita memanggil fungsi ValidationEvent() pada pengiriman formulir . Itu pertama-tama akan memvalidasi bidang formulir dan akan mengembalikan nilai boolean benar atau salah. |