HTML5 memperkenalkan placeholder
atribut pada input
elemen, yang memungkinkan untuk menampilkan teks default greyed-out.
Sayangnya Internet Explorer, termasuk IE 9 tidak mendukungnya.
Sudah ada beberapa skrip simulator placeholder di luar sana. Mereka biasanya bekerja dengan menempatkan teks-standar ke dalam bidang input, memberinya warna abu-abu dan menghapusnya lagi segera setelah Anda memfokuskan bidang input.
Kelemahan dari pendekatan ini adalah teks placeholder ada di bidang input. Jadi:
- skrip tidak dapat dengan mudah memeriksa apakah bidang input kosong
- pemrosesan sisi server harus memeriksa terhadap nilai default, agar tidak memasukkan placeholder ke dalam database.
Saya ingin memiliki solusi, di mana teks placeholder tidak ada dalam input itu sendiri.
Yang terbaik dalam pengalaman saya adalah https://github.com/mathiasbynens/jquery-placeholder (direkomendasikan oleh html5please.com ). http://afarkas.github.com/webshim/demos/index.html juga memiliki solusi yang baik di antara perpustakaan polyfill yang jauh lebih luas.
sumber
Dengan implementasi jQuery, Anda dapat dengan mudah menghapus nilai default ketika saatnya untuk mengirimkan. Di bawah ini adalah contohnya:
Saya tahu Anda mencari overlay, tetapi Anda mungkin lebih memilih kemudahan rute ini (sekarang tahu apa yang saya tulis di atas). Jika demikian, maka saya menulis ini untuk proyek saya sendiri dan berfungsi sangat bagus (memerlukan jQuery) dan hanya perlu beberapa menit untuk diterapkan untuk seluruh situs Anda. Ini menawarkan teks abu-abu pada awalnya, abu-abu terang saat dalam fokus, dan hitam saat mengetik. Ini juga menawarkan teks placeholder setiap kali bidang input kosong.
Pertama-tama siapkan formulir Anda dan sertakan atribut placeholder Anda pada tag input.
Cukup salin kode ini dan simpan sebagai placeholder.js.
Untuk digunakan hanya pada satu input
Inilah yang saya sarankan Anda menerapkannya di semua bidang input di situs Anda ketika browser tidak mendukung atribut placeholder HTML5:
sumber
Setelah mencoba beberapa saran dan melihat masalah di IE, inilah yang berfungsi:
https://github.com/parndt/jquery-html5-placeholder-shim/
Apa yang saya sukai - Anda cukup memasukkan file js. Tidak perlu memulainya atau apa pun.
sumber
Solusi berikut ini mengikat elemen input dengan atribut placeholder. Ini mengemulasi perilaku placeholder hanya untuk IE dan membersihkan bidang nilai input pada pengiriman jika tidak diubah.
Tambahkan skrip ini dan IE tampaknya akan mendukung placeholder HTML5.
sumber
Saya menyarankan Anda fungsi sederhana:
Dan untuk menggunakannya, panggil dengan cara ini:
sumber
Saya menemukan solusi yang cukup sederhana menggunakan metode ini:
http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html
ini adalah jquery hack, dan bekerja dengan baik pada proyek saya
sumber
Kamu bisa memakai :
sumber
Sederhana seperti ini:
sumber
Saya telah menulis plugin jquery untuk menyelesaikan masalah ini .. gratis ..
Direktori JQuery:
http://plugins.jquery.com/project/kegles-jquery-placeholder
Situs: www.kegles.com.br/jquery-placeholder/
sumber
Saya datang dengan skrip JQuery placeholder sederhana yang memungkinkan warna kustom dan menggunakan perilaku kliring input yang berbeda ketika fokus. Ini menggantikan placeholder default di Firefox dan Chrome dan menambahkan dukungan untuk IE8.
sumber
Placeholdr adalah drop-in tempat penampung jQuery polyfill yang sangat ringan yang saya tulis. Itu kurang dari 1 KB diperkecil.
Saya memastikan bahwa perpustakaan ini mengatasi kedua masalah Anda:
Placeholdr memperluas fungsi jQuery $ .fn.val () untuk mencegah nilai pengembalian yang tidak terduga ketika teks hadir di bidang input sebagai hasil dari Placeholdr. Jadi jika Anda tetap menggunakan API jQuery untuk mengakses nilai bidang Anda, Anda tidak perlu mengubah apa pun.
Placeholdr mendengarkan pengiriman formulir, dan menghapus teks placeholder dari bidang sehingga server hanya melihat nilai kosong.
Sekali lagi, tujuan saya dengan Placeholdr adalah untuk memberikan solusi drop-in sederhana untuk masalah placeholder. Beri tahu saya di Github jika ada hal lain yang membuat Anda tertarik untuk mendapatkan dukungan Placeholdr.
sumber
Untuk menyisipkan plugin dan periksa misal sudah berfungsi dengan baik. Placeholder.js
sumber
Berikut adalah fungsi javascript murni (tidak diperlukan jquery) yang akan membuat placeholder untuk IE 8 dan di bawahnya dan berfungsi juga untuk kata sandi. Itu membaca atribut placeholder HTML5 dan membuat elemen span di belakang elemen form dan membuat latar belakang elemen form transparan:
sumber
CATATAN: penulis polyfill ini mengklaimnya "bekerja di hampir semua browser yang dapat Anda bayangkan" tetapi menurut komentar itu tidak benar untuk IE11, namun IE11 memiliki dukungan asli, seperti halnya sebagian besar browser modern
Placeholder.js adalah polyfill placeholder terbaik yang pernah saya lihat, ringan, tidak bergantung pada JQuery, mencakup browser lama lainnya (bukan hanya IE), dan memiliki opsi untuk hide-on-input dan placeholder yang dijalankan sekali saja.
sumber
saya menggunakan jquery.placeholderlabels . Ini berdasarkan ini dan dapat didemokan di sini .
bekerja di ie7, ie8, ie9.
behaviour meniru firefox dan chrome behavior saat ini - di mana teks "placeholder" tetap terlihat pada fokus dan hanya menghilang begitu sesuatu diketik di lapangan.
sumber
Saya membuat plugin jQuery saya sendiri setelah menjadi frustrasi karena shims yang ada akan menyembunyikan placeholder pada fokus, yang menciptakan pengalaman pengguna yang lebih rendah dan juga tidak cocok dengan bagaimana Firefox, Chrome dan Safari menanganinya. Ini terutama terjadi jika Anda ingin input difokuskan ketika halaman atau popup pertama kali dimuat, sambil tetap menampilkan placeholder sampai teks dimasukkan.
https://github.com/nspady/jquery-placeholder-labels/
sumber