Rumah >hujung hadapan web >tutorial js >pengesahan borang jquery lulus borang pengesahan kelas bukan empty_jquery
Apabila membangunkan sistem, selalunya terdapat data bentuk tertentu yang diperlukan Jika jQuery digunakan untuk mengesahkan melalui ID, ia bukan sahaja akan menjejaskan kecekapan, tetapi juga menyebabkan ketinggalan, menjadikannya sukar untuk dikekalkan kemudian.
Bab ini akan memperkenalkan cara menggunakan jQuery untuk melaksanakan pengesahan bersatu dengan mengkonfigurasi kelas untuk borang. (ID hanya boleh digunakan sekali pada halaman; kelas boleh dirujuk beberapa kali)
1: Tambahkan kelas pada input Nama boleh ditetapkan sesuka hati, tetapi setiap input perlu konsisten Dalam bab ini, calss ditetapkan kepada noNull. (Jika input sudah mempunyai atribut kelas, ia boleh ditambah terus selepasnya)
2: Tambahkan atribut pada input untuk mendapatkan medan melalui jquery kemudian dan gunakannya sebagai gesaan. Atribut gesaan kes dalam bab ini ialah notNull.
3: Gunakan jQuery untuk melintasi semua borang dengan calss noNull dalam halaman dan sahkan sama ada ia kosong Jika ia kosong, dapatkan medan notNull dan berikan gesaan kosong.
Untuk butiran tentang cara menyediakannya, sila rujuk kes di bawah. Bab ini menerangkan input, radio, pilih, kotak semak dan jenis lain.
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> </head> <body> <form> <!-- input --> <div> 姓名: <input type="text" name="name" notNull="姓名" class="form-control noNull"> </div> <br> <!-- radio --> <div> 性别: 男<input type="radio" name="sex" value="0" class="noNull" notNull="性别"> 女<input type="radio" name="sex" value="1" > </div> <br> <!-- select --> <div> 年龄: <select name="age" class="noNull" notNull="年龄"> <option value ="">请选择</option> <option value ="1">1</option> <option value ="2">2</option> </select> </div> <br> <!-- checkbox --> <div> 兴趣: 打球<input type="checkbox" name="hobby" value="1" class="noNull" notNull="兴趣"> 唱歌<input type="checkbox" name="hobby" value="2"> 跳舞<input type="checkbox" name="hobby" value="3"> </div> <br> <button type="button" class="btn-c" onclick="bubmi()">保存</button> </form> <script src="jquery-1.9.1.min.js"></script> <script type="text/javascript"> function bubmi(){ $(".noNull").each(function(){ var name = $(this).attr("name"); if($(this).val()==""){ alert($(this).attr('notNull')+"不能为空");return false; } if($(this).attr("type")=="radio"){ if ($("input[name='"+name+"']:checked").size() < 1){ alert($(this).attr('notNull')+"不能为空!"); return false; } } if($(this).attr("type")=="checkbox"){ if ($('input[name="'+name+'"]:checked').size() < 1){ alert($(this).attr('notNull')+"不能为空!"); return false; } } }) } </script> </body> </html>
Yang berikut memperkenalkan anda kepada pemalam pengesahan jquery.validate.js
jquery.validate.js ialah pemalam pengesahan di bawah jquery Dengan kelebihan jquery, kami boleh dengan cepat mengesahkan beberapa input biasa dan mengembangkan kaedah pengesahan kami sendiri.
Sebagai contoh, terdapat borang sedemikian:
<form id="signupForm" method="get" action=""> <fieldset> <legend>Validating a complete form</legend> <p> <label for="firstname">Firstname</label> <input id="firstname" name="firstname" class="required"/> </p> <p> <label for="lastname">Lastname</label> <input id="lastname" name="lastname" /> </p> <p> <label for="username">Username</label> <input id="username" name="username" /> </p> <p> <label for="password">Password</label> <input id="password" name="password" type="password" /> </p> <p> <label for="confirm_password">Confirm password</label> <input id="confirm_password" name="confirm_password" type="password" /> </p> <p> <label for="email">Email</label> <input id="email" name="email" /> </p> <p> <input class="submit" type="submit" value="Submit"/> </p> </fieldset> </form>
Dalam borang ini, terdapat nama pertama, nama keluarga, nama pengguna, kata laluan, kata laluan sahkan dan e-mel. Kesemuanya mestilah tidak kosong, dan e-mel mestilah alamat yang diformatkan dengan betul, kata laluan pengesahan dan kata laluan yang konsisten. Cara paling mudah untuk menggunakan pengesahan jQuery adalah dengan memperkenalkan dua fail js, jquery.js dan jquery validation.js. Kemudian tambahkan kelas pada input masing-masing:
<input id="firstname" name="firstname" class="required"/> <input id="lastname" name="lastname" class="required"/> <input id="username" name="username" class="required"/> <input id="password" name="password" type="password" class="required"/> <input id="confirm_password" name="confirm_password" type="password" class="required" equalTo="#password"/> <input id="email" name="email" class="required email"/>
Berikut menyenaraikan pengesahan lalai yang disertakan dengan pengesahan
diperlukan: "Medan yang diperlukan",
jauh: "Sila betulkan medan ini",
e-mel: "Sila masukkan format e-mel anda yang betul",
url: "Sila masukkan URL yang sah",
tarikh: "Sila masukkan tarikh yang sah",
dateISO: "Sila masukkan tarikh yang sah (ISO)",
nombor: "Sila masukkan nombor sah",
digit: "Hanya integer boleh dimasukkan",
kad kredit: "Sila masukkan nombor kad kredit yang sah",
equalTo: "Sila masukkan nilai yang sama sekali lagi",
terima: "Sila masukkan rentetan dengan akhiran undang-undang",
maxlength: jQuery.format("Sila masukkan rentetan dengan panjang paling banyak {0}"),
minlength: jQuery.format("Sila masukkan rentetan dengan panjang sekurang-kurangnya {0}"),
rangelength: jQuery.format("Sila masukkan rentetan dengan panjang antara {0} dan {1}"),
julat: jQuery.format("Sila masukkan nilai antara {0} dan {1}"),
max: jQuery.format("Sila masukkan nilai sehingga {0}"),
min: jQuery.format("Sila masukkan nilai minimum {0}")
Kemudian, sekiranya dokumen dibaca, tambah kaedah berikut:
<script> $(document).ready(function(){ $("#signupForm").validate(); } </script>
Dengan cara ini, apabila borang diserahkan, ia akan disahkan berdasarkan kelas yang ditentukan oleh input. Jika gagal, penyerahan borang akan disekat. Dan, maklumat segera dipaparkan di belakang input.
Walau bagaimanapun, ini terasa buruk kerana peraturan pengesahan menyerang kod html kami. Cara lain ialah menggunakan "peraturan". Kami memadamkan kelas pengesahan untuk input. Kemudian ubah suai kod respons acara sedia dokumen:
$(document).ready(function(){ $("#signupForm").validate({ rules:{ firstname:"required", lastname:"required", username:"required", password:"required", confirm_password:{ required:true, equalTo:"#password" }, email:{ required:true, email:true } } }); })
Dengan cara ini, kesan yang sama boleh dicapai.
Kemudian, soalan seterusnya ialah mesej ralat yang dipaparkan adalah lalai. Kita perlu menggunakan gesaan tersuai:
$(document).ready(function(){ $("#signupForm").validate({ rules:{ firstname:"required", lastname:"required", username:"required", password:"required", confirm_password:{ required:true, equalTo:"#password" }, email:{ required:true, email:true } }, messages:{ firstname:"必填项", lastname:"必填项", username:"必填项", password:"必填项", confirm_password:{ required:"必填项", equalTo:"密码不一致" }, email:{ required:"必填项", email:"格式有误" } } }); })
Jika anda juga ingin memaparkan gaya khas pada mesej ralat (contohnya, fon berwarna merah), anda boleh menambah:
<style type="text/css"> #signupForm label.error { padding-left: 16px; margin-left: 2px; color:red; background: url(img/unchecked.gif) no-repeat 0px 0px; } </style>
Teruskan menambah peraturan pengesahan untuk panjang kata laluan input:
$(document).ready(function(){ $("#signupForm").validate({ rules:{ firstname:"required", lastname:"required", username:"required", password:{ required:true, minlength:4, maxlength:15 }, confirm_password:{ required:true, equalTo:"#password" }, email:{ required:true, email:true } }, messages:{ firstname:"必填项", lastname:"必填项", username:"必填项", password:{ required:"必填项", minlength:jQuery.format("密码长度不少于{0}位"), maxlength:jQuery.format("密码长度不超过{0}位") }, confirm_password:{ required:"必填项", equalTo:"密码不一致" }, email:{ required:"必填项", email:"格式有误" } } }); })
Gunakan alat kawalan jauh
Anda boleh menentukan kaedah kesan pencetus melalui peristiwa (nilai pilihan termasuk keyup (setiap kali kekunci ditekan), kabur (apabila kawalan kehilangan fokus), jika tidak dinyatakan, ia hanya akan mencetuskan apabila butang hantar ditekan)
$(document).ready(function(){ $("#signupForm").validate({ event:"keyup" || "blur" }) })
Jika anda menentukan nyahpepijat sebagai benar, borang tidak akan diserahkan dan hanya boleh digunakan untuk pengesahan (lalai ialah penyerahan) dan boleh digunakan untuk nyahpepijat
$(document).ready(function(){ $("#signupForm").validate({ debug:true }) })
Jika anda perlu melakukan beberapa pemprosesan tersuai sebelum menyerahkan, gunakan parameter submitHandler
$(document).ready(function(){ $("#signupForm").validate({ SubmitHandler:function(){ alert("success"); } }) })