Saya mencoba menambahkan validasi ke formulir saya dengan Plugin Validasi jQuery, tetapi saya mengalami masalah ketika plugin meletakkan pesan kesalahan ketika saya menggunakan grup input.
$('form').validate({
rules: {
firstname: {
minlength: 3,
maxlength: 15,
required: true
},
lastname: {
minlength: 3,
maxlength: 15,
required: true
}
},
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error');
}
});
Kode saya: http://jsfiddle.net/hTPY7/4/
twitter-bootstrap
jquery-validate
twitter-bootstrap-3
Miguel Borges
sumber
sumber
Jawaban:
untuk kompatibilitas total dengan twitter bootstrap 3, saya perlu mengganti beberapa metode plugin:
Lihat Contoh: http://jsfiddle.net/mapb_1990/hTPY7/7/
sumber
resetForm()
validator formulir tidak akan memanggilunhighlight
elemen yang tidak valid, sehingga perlu untuk menghapushas-error
kelas dengan tangan saat mengatur ulang formulir. Apa yang saya lakukan adalah memanggil fungsi berikut alih-alih memanggilresetForm()
langsung validator :function resetForm(form_id) { $(form_id).find(".form-group").removeClass("has-error"); $(form_id).data('validator').resetForm(); }
else if (element.prop('type') === 'radio') { error.insertBefore(element.parent().parent()); }
Untuk kompatibilitas penuh dengan Bootstrap 3 saya menambahkan dukungan untuk kelompok input , radio dan kotak centang , yang tidak ada dalam solusi lain.
Pembaruan 10/20/2017 : Saran yang diinspeksi dari jawaban lain dan menambahkan dukungan tambahan untuk markup khusus radio-inline , penempatan kesalahan yang lebih baik untuk sekelompok radio atau kotak centang dan menambahkan dukungan untuk kelas .novalidation kustom untuk mencegah validasi kontrol. Semoga ini bisa membantu dan terima kasih atas sarannya.
Setelah menyertakan plugin validasi tambahkan panggilan berikut:
Ini berfungsi untuk semua kelas bentuk Bootstrap 3. Jika Anda menggunakan formulir horizontal, Anda harus menggunakan markup berikut. Ini memastikan bahwa teks blokir bantuan menghargai status validasi ("kesalahan", ...) dari grup-bentuk .
sumber
errorClass: "help-block error-help-block"
. Saya sudah menggunakan .help-block untuk informasi bantuan reguler, dan ini menimpanya dengan pesan validasi formulir. Menambahkan kelas kedua membuatnya unik dan jadi sekarang menambahkan bukan menimpa pesan bantuan "nyata" saya.Saya menggunakan formulir yang dirancang hanya dengan Twitter Bootstrap 3. Saya mengatur fungsi default untuk validor dan menjalankan hanya metode validasi dengan aturan. Saya menggunakan Ikon dari FontAweSome, tetapi Anda dapat menggunakan Glyphicons seperti pada contoh doc.
Selesai Setelah menjalankan fungsi validasi:
Contoh JSFiddle
sumber
Menambahkan ke jawaban Miguel Borges di atas Anda dapat memberikan umpan balik keberhasilan hijau kepada pengguna dengan menambahkan baris berikut dalam blok kode highlight / unhighlight.
sumber
ini adalah solusi yang Anda butuhkan, Anda dapat menggunakan
errorPlacement
metode ini untuk mengganti tempat untuk meletakkan pesan kesalahanini bekerja untuk saya seperti sulap. Bersulang
sumber
error.insertAfter('.form-group');
letakkan kesalahan di semua .form-group. tetapi itu menunjukkan saya ide. terima kasihuntuk bootstrap 4 ini bekerja dengan saya bagus
berharap ini akan membantu!
sumber
validClass: 'valid-feedback'
Inilah yang saya gunakan saat menambahkan validasi ke formulir:
Ini berfungsi untuk saya untuk gaya Bootstrap 3 saat menggunakan pustaka validasi jquery.
sumber
Saya menggunakan ini untuk radio:
dengan cara ini kesalahan ditampilkan di bawah opsi radio terakhir.
sumber
Saya tahu pertanyaan ini untuk Bootstrap 3, tetapi karena beberapa pertanyaan terkait Bootstrap 4 diarahkan ke yang ini sebagai duplikat, berikut cuplikan Bootstrap 4 yang kompatibel:
Beberapa perbedaan adalah:
has-danger
bukanhas-error
sumber
.has-*
kelas. getbootstrap.com/docs/4.3/migration/#forms-1Untuk bootstrap 4 beta ada beberapa perubahan besar antara versi alpha dan beta dari bootstrap (dan juga bootstrap 3), esp. dalam hal form validasi.
Pertama, untuk menempatkan ikon dengan benar Anda harus menambahkan gaya yang sama dengan apa yang ada di bootstrap 3 dan tidak lagi di bootstrap 4 beta ... inilah yang saya gunakan
Kelas-kelas juga telah berubah karena beta menggunakan 'status' kontrol daripada kelas-kelas yang tidak dipantulkan oleh kode yang Anda posting, jadi kode di atas Anda mungkin tidak berfungsi. Bagaimanapun, Anda harus menambahkan kelas 'sudah divalidasi' ke formulir baik dalam keberhasilan atau sorot / buka kembali panggilan balik
Saya juga akan merekomendasikan menggunakan elemen dan kelas baru untuk teks bantuan kontrol formulir
sumber
Ini membentuk bidang
sumber
tambahkan radio-inline fix ke https://stackoverflow.com/a/18754780/966181 ini
sumber
Jawaban DARK_DIESEL bekerja sangat baik untuk saya; inilah kode untuk siapa saja yang menginginkan yang setara menggunakan glyphicons:
sumber
Coba gunakan kode contoh ini. Menggunakan plugin validasi Jquery dan metode tambahan. Ini adalah kode kerja untuk proyek saya. Semoga ini bisa membantu Anda
sumber
Opsi lain adalah menempatkan wadah kesalahan di luar grup formulir Anda sebelumnya. Validator kemudian akan menggunakannya jika perlu.
sumber