Sebagian besar nilai input bentuk cache browser. Jadi, saat pengguna menyegarkan halaman, input memiliki nilai yang sama.
Inilah masalah saya. Ketika pengguna mengklik Simpan , server memvalidasi data yang diposkan (mis. Produk yang dicentang), dan jika tidak valid, mengirimkannya kembali ke browser. Namun, seperti yang dinyatakan di atas, meskipun server menghapus pilihan untuk beberapa nilai, nilai tersebut mungkin masih dipilih karena cache browser!
Data saya memiliki kotak centang yang tidak terlihat (sampai item induk dipilih), sehingga pengguna mungkin bahkan tidak menyadari bahwa beberapa nilai sebelumnya masih dipilih, sampai mengklik Simpan lagi dan mendapat pesan kesalahan - meskipun pengguna mengira tidak. Yang menjengkelkan.
Ini dapat diselesaikan dengan melakukan Ctrl+ F5, tetapi ini bahkan bukan solusi. Apakah ada cara otomatis / terprogram untuk memberi tahu browser agar tidak menyimpan data input formulir di beberapa formulir / halaman?
sumber
<form autocomplete="off"...
ada pilihan untuk Anda? Apakah masalah ini terjadi di semua browser, atau hanya di satu browser tertentu?<select>
daftar drop-down . Saya memiliki daftar dan telah menentukanselected
pilihan tetapi menyegarkan halaman mempertahankan opsi yang dipilih sebelumnya.Jawaban:
Apakah Anda secara eksplisit menyetel nilai sebagai kosong? Sebagai contoh:
Itu harus menghentikan browser menempatkan data di tempat yang tidak semestinya. Sebagai alternatif, Anda dapat menambahkan
autocomplete
atribut ke tag formulir:sumber
checked="false"
, ini mungkin berfungsi di beberapa browser. Alternatif lain adalah dengan menggunakan Javascript / jQuery untuk secara eksplisit menghapus centang semua kotak centang pada pemuatan halaman.Dari referensi Stack Overflow
Ini tidak bekerja dengan value = "" jika browser sudah menyimpan nilainya jadi Anda harus menambahkan.
Untuk tag masukan ada atribut pelengkapan otomatis yang dapat Anda setel:
Anda juga dapat menggunakan pelengkapan otomatis untuk formulir.
sumber
autocomplete="off"
tidak berpengaruh saat digunakan pada elemen bentuk individual - bahkan denganvalue
atribut yang secara eksplisit dikosongkan, dan saat mengirimCache-Control: Must-Revalidate
header, ini tidak berpengaruh. Saya harus menerapkanautocomplete="off"
atribut ke<form>
elemen itu sendiri untuk menekan perilaku ini di Chrome.Pendekatan lain adalah mengatur ulang formulir menggunakan JavaScript tepat setelah formulir di HTML:
sumber
Pada dasarnya, ada dua cara untuk membersihkan cache:
atau
sumber
Ini berfungsi untuk saya di browser yang lebih baru:
sumber