Jquery validation remote 驗證的緩存問題解決方法_jquery
May 16, 2016 pm 04:54 PM最近項目中一直在用 Jquery validation 做校驗,結合bootstrap 和 jquery form 感覺效果不錯。但是remote驗證的緩存問題讓我頭痛了很久,幾乎就像放棄這款插件了。
舉例說明:
現(xiàn)有學校,年級,班級實體
在同一學校下不能有相同的年級,在同一年級下不能有相同的班級
以同一學校下不能有相同年級為例,在驗證的時候用remote方式:
JS
"gradeId" : {
required : true,
min : 0,
remote: {
url: "gradeManager-checkGrade.action",
type: "post",
dataType: "json",
data: {
'gradeId' : function() {
return $("#gradeId").val();
},
'schoolId' : function() {
return $("#schoolId").val();
}
}
}
}
HTML
現(xiàn)在有 測試學校1、測試學校2,兩所學校,其中測試學校1下有 小學一年級、小學二年級兩個年級
理論上,在新增年級的時候,如果學校選擇測試學校1,那么選擇小學一年級、小學二年級時remote驗證會報錯“該年級已經(jīng)存在”
事實上,第一次操作時,結果也是正確的

但是如果此時再更改學校,比如選擇測試學校2,由于緩存問題,validation插件并不會重新進行新的remote驗證而會直接返回上一次驗證的結果,于是就有了如下蛋疼的錯誤

這還不是最難讓人接受的,更嚴重的問題時如果先選擇了測試學校2、和小學一年級,remote驗證通過,此時再選擇測試學校1,remote驗證依然通過,如此一來同一學校下不能有相同年級的驗證就等于失敗了
于是進行了各種查詢解決方法
有種說法是,在remote中加入 "cache: false",但是實測并沒有解決問題
嘗試過在學校下拉框上綁定onchange事件清空gradeId的值,依然無法解決問題
查閱了validation的api,發(fā)現(xiàn) .valid() 方法可以主動觸發(fā)驗證,但是由于緩存問題,remote依然沒有重新驗證
還查看了validation的源碼,發(fā)現(xiàn)其中有個previousValue這個東西,如果有值就會直接return 前一次的驗證結果

于是嘗試了一下清空這個值
$("#schoolId").change(function(){
$("#gradeId").removeData("previousValue");
});
成功解決問題

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Dalam folder manakah penyemak imbas menyimpan video tersebut Apabila kita menggunakan pelayar Internet setiap hari, kita sering menonton pelbagai video dalam talian, seperti menonton video muzik di YouTube atau menonton filem di Netflix. Video ini akan dicache oleh penyemak imbas semasa proses pemuatan supaya ia boleh dimuatkan dengan cepat apabila dimainkan semula pada masa hadapan. Jadi persoalannya, dalam folder manakah video yang dicache ini sebenarnya disimpan? Pelayar yang berbeza menyimpan folder video cache di lokasi yang berbeza. Di bawah ini kami akan memperkenalkan beberapa pelayar biasa dan mereka

1. Selepas membuka WeChat, klik ikon carian, masukkan pasukan WeChat, dan klik perkhidmatan di bawah untuk masuk. 2. Selepas memasukkan, klik pilihan alat layan diri di sudut kiri bawah. 3. Selepas mengklik, dalam pilihan di atas, klik pilihan untuk menyahsekat/merayu untuk pengesahan tambahan.

DNS (DomainNameSystem) ialah sistem yang digunakan di Internet untuk menukar nama domain kepada alamat IP yang sepadan. Dalam sistem Linux, cache DNS ialah mekanisme yang menyimpan hubungan pemetaan antara nama domain dan alamat IP secara tempatan, yang boleh meningkatkan kelajuan resolusi nama domain dan mengurangkan beban pada pelayan DNS. Caching DNS membolehkan sistem mendapatkan semula alamat IP dengan pantas apabila kemudiannya mengakses nama domain yang sama tanpa perlu mengeluarkan permintaan pertanyaan kepada pelayan DNS setiap kali, dengan itu meningkatkan prestasi dan kecekapan rangkaian. Artikel ini akan membincangkan dengan anda cara melihat dan memuat semula cache DNS pada Linux, serta butiran yang berkaitan dan kod sampel. Kepentingan Caching DNS Dalam sistem Linux, cache DNS memainkan peranan penting. kewujudannya

Kami biasanya menerima fail PDF daripada kerajaan atau agensi lain, sesetengahnya dengan tandatangan digital. Selepas mengesahkan tandatangan, kami melihat mesej SignatureValid dan tanda semak hijau. Sekiranya tandatangan tidak disahkan, kesahihannya tidak diketahui. Mengesahkan tandatangan adalah penting, mari lihat cara melakukannya dalam PDF. Cara Mengesahkan Tandatangan dalam PDF Mengesahkan tandatangan dalam format PDF menjadikannya lebih boleh dipercayai dan dokumen lebih cenderung untuk diterima. Anda boleh mengesahkan tandatangan dalam dokumen PDF dengan cara berikut. Buka PDF dalam Adobe Reader Klik kanan tandatangan dan pilih Show Signature Properties Klik butang Tunjukkan Sijil Penandatangan Tambah tandatangan pada senarai Sijil Dipercayai daripada tab Amanah Klik Sahkan Tandatangan untuk melengkapkan pengesahan Biarkan

SpringBoot ialah rangka kerja Java popular yang terkenal dengan kemudahan penggunaan dan pembangunan pesatnya. Walau bagaimanapun, apabila kerumitan aplikasi meningkat, isu prestasi boleh menjadi halangan. Untuk membantu anda mencipta aplikasi springBoot sepantas angin, artikel ini akan berkongsi beberapa petua pengoptimuman prestasi praktikal. Optimumkan masa permulaan Masa permulaan aplikasi adalah salah satu faktor utama pengalaman pengguna. SpringBoot menyediakan beberapa cara untuk mengoptimumkan masa permulaan, seperti menggunakan caching, mengurangkan output log dan mengoptimumkan pengimbasan laluan kelas. Anda boleh melakukan ini dengan menetapkan spring.main.lazy-initialization dalam fail application.properties

Tajuk: Mekanisme caching dan contoh kod fail HTML Pengenalan: Semasa menulis halaman web, kita sering menghadapi masalah cache penyemak imbas. Artikel ini akan memperkenalkan mekanisme caching fail HTML secara terperinci dan menyediakan beberapa contoh kod khusus untuk membantu pembaca memahami dan menggunakan mekanisme ini dengan lebih baik. 1. Prinsip caching pelayar Dalam penyemak imbas, apabila halaman web diakses, penyemak imbas akan terlebih dahulu menyemak sama ada terdapat salinan halaman web dalam cache. Jika ada, kandungan halaman web diperoleh terus daripada cache Ini adalah prinsip asas caching pelayar. Faedah mekanisme caching pelayar

PHPAPCu (penggantian cache php) ialah cache opcode dan modul cache data yang mempercepatkan aplikasi PHP. Memahami ciri lanjutannya adalah penting untuk menggunakan potensi penuhnya. 1. Operasi kelompok: APCu menyediakan kaedah operasi kelompok yang boleh memproses sebilangan besar pasangan nilai kunci pada masa yang sama. Ini berguna untuk pembersihan atau kemas kini cache berskala besar. //Dapatkan kunci cache dalam kelompok $values=apcu_fetch(["key1","key2","key3"]); //Kosongkan kekunci cache dalam kelompok apcu_delete(["key1","key2","key3"]) ;2 .Tetapkan masa tamat tempoh cache: APCu membenarkan anda menetapkan masa tamat tempoh untuk item cache supaya ia tamat tempoh secara automatik selepas masa yang ditetapkan.

Steam ialah platform yang digunakan oleh peminat permainan Anda boleh membeli dan membeli banyak permainan di sini Walau bagaimanapun, baru-baru ini ramai pengguna telah terperangkap dalam antara muka pengesahan token mudah alih apabila log masuk ke Steam dan tidak berjaya melog masuk tahu bagaimana untuk menyelesaikan situasi ini. Tidak mengapa Tutorial perisian hari ini di sini untuk menjawab soalan untuk pengguna yang memerlukan boleh menyemak kaedah operasi. Ralat token mudah alih wap? Penyelesaian 1: Untuk masalah perisian, mula-mula cari tetapan perisian wap pada telefon mudah alih, minta halaman bantuan, dan sahkan bahawa rangkaian menggunakan peranti berjalan seperti biasa, klik OK sekali lagi, klik Hantar SMS, anda boleh menerima kod pengesahan pada halaman telefon mudah alih, dan anda selesai Sahkan, selesaikan apabila memproses permintaan
