Saya punya dua halaman dengan formulir HTML. Halaman pertama memiliki formulir pengiriman, dan halaman kedua memiliki formulir penerimaan. Formulir pertama menawarkan pilihan banyak kontrol, sementara halaman kedua menampilkan data dari formulir pengiriman lagi dengan pesan konfirmasi. Pada formulir kedua ini semua bidang harus statis.
Dari apa yang saya lihat, beberapa kontrol formulir bisa readonly
dan semua bisa disabled
, bedanya adalah Anda masih bisa tab ke bidang hanya baca.
Daripada melakukan bidang ini demi bidang, adakah cara untuk menandai seluruh formulir sebagai hanya-baca / dinonaktifkan / statis sehingga pengguna tidak dapat mengubah kontrol apa pun?
Tidak semua elemen formulir dapat disetel ke
readonly
, misalnya:Maka solusi yang masuk akal adalah mengatur
disabled
atribut semua elemen formtrue
, karena OP tidak menyatakan bahwa form "terkunci" spesifik harus dikirim ke server (yangdisabled
tidak diizinkan oleh atribut).Solusi lain, yang disajikan dalam demo di bawah ini, adalah menempatkan lapisan di atas
form
elemen yang akan mencegah interaksi dengan semua elemen di dalamform
elemen, karena lapisan itu diatur denganz-index
nilai yang lebih besar:DEMO:
sumber
Anda dapat menggunakan fungsi ini untuk menonaktifkan formulir:
Lihat demo yang berfungsi di sini
Perhatikan bahwa ia menggunakan jQuery.
sumber
Di halaman konfirmasi, jangan meletakkan konten di kontrol yang dapat diedit, cukup tuliskan ke halaman.
sumber
Tidak ada cara bawaan yang saya tahu untuk melakukan ini sehingga Anda perlu membuat solusi khusus tergantung pada seberapa rumit formulir Anda. Anda harus membaca posting ini:
Konversikan formulir HTML menjadi hanya-baca ( Perbarui : tautan kiriman rusak, tautan arsip )
EDIT: Berdasarkan pada pembaruan Anda, mengapa Anda begitu khawatir karena hanya dapat dibaca? Anda dapat melakukannya melalui sisi klien tetapi jika tidak, Anda harus menambahkan tag yang diperlukan untuk setiap kontrol atau mengonversi data dan menampilkannya sebagai teks mentah tanpa kontrol. Jika Anda mencoba membuatnya hanya-baca sehingga posting berikutnya tidak akan dimodifikasi maka Anda memiliki masalah karena siapa pun dapat mengacaukan posting tersebut untuk menghasilkan apa pun yang mereka inginkan sehingga ketika Anda melakukannya pada akhirnya menerima data yang lebih baik Anda memeriksanya. lagi untuk memastikan itu valid.
sumber
Tidak ada cara HTML resmi yang sepenuhnya patuh untuk melakukannya, tetapi sedikit javascript bisa bermanfaat. Masalah lain yang akan Anda hadapi adalah bahwa bidang yang dinonaktifkan tidak muncul di data POST
sumber
Ini adalah solusi ideal untuk menonaktifkan semua input , textareas , select dan tombol dalam elemen tertentu.
Untuk jQuery 1.6 ke atas :
Atau
jQuery 1.5 dan di bawah :
Dan
sumber
Cara sederhana lain yang didukung oleh semua browser adalah:
HTML:
CSS:
Namun perlu diperhatikan, bahwa tabbing masih bekerja dengan pendekatan ini dan elemen-elemen dengan fokus masih dapat dimanipulasi oleh pengguna.
sumber
Buat semua id formulir diberi nomor dan jalankan perulangan for di JS.
sumber
Saya lebih suka menggunakan jQuery:
find () akan lebih dalam hingga anak yang bersarang daripada anak-anak (), yang mencari anak langsung saja.
sumber
Cara termudah
sumber
Anda menambahkan html lapisan tak terlihat di atas formulir. Misalnya
dan gaya:
Pengguna Ofcourse dapat menyembunyikan lapisan ini di browser web.
sumber