Apa adalah cara termudah untuk menonaktifkan/mengaktifkan tombol dan link (jQuery + Bootstrap)
Kadang-kadang saya menggunakan jangkar ditata sebagai tombol dan kadang-kadang saya hanya menggunakan tombol. Saya ingin menonaktifkan tertentu clicky-hal yang:
- Mereka terlihat cacat
- Mereka berhenti diklik
Bagaimana saya bisa melakukan ini?
354
15
Tombol
Tombol sederhana untuk menonaktifkan sebagai
keluarga
adalah tombol properti yang ditangani oleh browser:Untuk menonaktifkan ini dengan jQuery kustom fungsi, anda'd hanya menggunakan
fn.memperpanjang()
:[JSFiddle tombol dinonaktifkan dan masukan demo][2].
Jika tidak, anda'a menggunakan jQuery's
prop()
metode:Anchor Tag
It's dicatat bahwa
cacat
isn't valid properti untuk tag anchor. Untuk alasan ini, Bootstrap menggunakan styling berikut pada nya.btn
unsur-unsur:Perhatikan bagaimana
[cacat]
properti ditargetkan serta.keluarga
kelas. The.keluarga
kelas adalah apa yang dibutuhkan untuk membuat sebuah tag anchor muncul dinonaktifkan.Tentu saja, ini tidak akan mencegah link dari berfungsi saat diklik. Link di atas akan membawa kita ke http://example.com. Untuk mencegah hal ini, kita dapat menambahkan sepotong sederhana dari kode jQuery untuk target anchor tag dengan
keluarga
kelas untuk memanggilacara.preventDefault()
:Kita dapat beralih
keluarga
kelas dengan menggunakantoggleClass()
:[JSFiddle cacat link demo][8].
Gabungan
Kita kemudian dapat memperpanjang sebelumnya menonaktifkan fungsi yang dibuat di atas untuk memeriksa jenis elemen yang kita're mencoba untuk menonaktifkan menggunakan
adalah()
. Dengan cara ini kita dapattoggleClass()
jika isn't aninput
atautombol
elemen, atau beralihcacat
property jika itu adalah:[Penuh dikombinasikan demo JSFiddle][10].
It's bernilai lebih lanjut mencatat bahwa fungsi di atas juga akan bekerja pada semua jenis masukan.
Saya dapat't pikir sederhana/cara yang lebih mudah! ;-)
Menggunakan tag Anchor (Link) :
Untuk mengaktifkan Anchor tag:
Untuk menonaktifkan tag Anchor:
Misalkan anda memiliki bidang teks dan tombol submit,
Menonaktifkan:
Untuk menonaktifkan tombol, misalnya tombol kirim, anda hanya perlu menambahkan disabled atribut seperti,
Setelah mengeksekusi baris di atas, anda submit tag html akan terlihat seperti ini:
Perhatikan 'keluarga' atribut telah ditambahkan.
Memungkinkan:
Untuk mengaktifkan tombol, seperti ketika anda memiliki beberapa teks ke dalam bidang teks. Anda akan perlu untuk menghapus menonaktifkan atribut untuk mengaktifkan tombol,
Sekarang kode di atas akan menghapus 'keluarga' atribut.
Aku tahu aku'm terlambat untuk partai, tapi untuk secara khusus menjawab dua pertanyaan:
"saya hanya ingin menonaktifkan tertentu clicky-hal sehingga:
Seberapa keras ini bisa terjadi?"
Mereka berhenti mengklik
1. Untuk tombol like
<tombol>
atau<input type="tombol">
anda menambahkan atribut:cacat
.2. Untuk link, link... sebenarnya, setiap elemen HTML, anda dapat menggunakan CSS3 pointer events.
Browser mendukung untuk pointer peristiwa mengagumkan dengan hari ini's state of the art (5/12/14). Tapi biasanya kita harus mendukung browser lama di IE alam, sehingga IE10 dan di bawah ini TIDAK mendukung pointer events: http://caniuse.com/pointer-events. Jadi menggunakan salah satu JavaScript solusi yang disebutkan oleh orang lain di sini mungkin menjadi cara untuk pergi untuk browser lama.
Info lebih lanjut tentang peristiwa pointer:
Mereka terlihat disabled
Jelas ini sebuah CSS jawaban, sehingga:
1. Untuk tombol like
<tombol>
atau<input type="tombol">
menggunakan[atribut]
selector:--
Berikut ini's dasar demo dengan hal-hal yang saya sebutkan berikut ini: http://jsfiddle.net/bXm5B/4/
Semoga ini bisa membantu.
Jika, seperti saya, anda hanya ingin menonaktifkan tombol, don't lewatkan jawaban sederhana halus yang tersembunyi di ini thread lama:
@James Donnelly telah disediakan jawaban yang komprehensif yang bergantung pada perluasan jQuery dengan fungsi baru. Itu adalah ide bagus, jadi saya akan beradaptasi kode nya jadi ini bekerja dengan cara saya membutuhkannya.
Memperluas jQuery
Penggunaan ****
Kode akan memproses elemen tunggal atau daftar elemen-elemen.
Tombol dan Masukan yang mendukung
cacat
property dan, jika diatur kebenar
, mereka akan terlihat cacat (terima kasih untuk bootstrap) dan tidak akan terbakar ketika diklik.Jangkar don't mendukung kenyamanan tamu jadi gantinya kita akan bergantung pada
.keluarga
kelas untuk membuat mereka terlihat cacat (terima kasih untuk bootstrap lagi) dan hook up default klik acara yang mencegah klik dengan mengembalikan false (tidak perlu untukpreventDefault
lihat di sini).Catatan: Anda tidak perlu untuk melepas kaitan peristiwa ini ketika re-memungkinkan jangkar. Hanya mengeluarkan
.keluarga
kelas melakukan trik.Tentu saja, ini tidak membantu jika anda telah terpasang custom handler klik untuk link, sesuatu yang sangat umum ketika menggunakan bootstrap dan jQuery. Jadi untuk mengatasi hal ini kita akan tro menggunakan
dinonaktifkan()
ekstensi untuk menguji.keluarga
kelas, seperti ini:Saya berharap yang membantu menyederhanakan hal-hal sedikit.
Catatan yang ada's aneh masalah jika anda're menggunakan Bootstrap's JS tombol dan 'loading' negara. Saya don't tahu mengapa ini terjadi, tapi di sini's bagaimana untuk memperbaikinya.
Katakanlah anda memiliki sebuah tombol dan anda set ke negara loading:
Sekarang anda ingin membawanya keluar dari beban negara, tetapi juga menonaktifkan (misalnya tombol adalah tombol Simpan, memuat state ditunjukkan berkelanjutan validasi dan validasi gagal). Hal ini sepertinya wajar JS Bootstrap:
Sayangnya, yang akan me-reset tombol, tapi tidak menonaktifkannya. Rupanya,
button()
melakukan beberapa tertunda tugas. Jadi anda'll juga harus menunda anda menonaktifkan:Sedikit mengganggu, tapi itu's pola I'm menggunakan banyak.
Jawaban dan kontribusi dari semua! Aku harus memperpanjang fungsi ini sedikit untuk memasukkan menonaktifkan pilih unsur-unsur:
Tampaknya bekerja untuk saya. Terima kasih semua!
Untuk perilaku semacam itu, saya selalu menggunakan jQueryUI
tombol
widget, saya gunakan untuk link dan tombol.Mendefinisikan tag dalam HTML:
Menggunakan jQuery untuk menginisialisasi tombol:
Menggunakan
tombol
widget metode untuk menonaktifkan/mengaktifkan mereka:Yang akan mengurus tombol dan perilaku kursor, tapi jika anda perlu untuk mendapatkan lebih dalam dan mengubah gaya tombol ketika dinonaktifkan kemudian menimpa berikut kelas CSS dalam halaman anda gaya CSS file.
Tapi ingat: orang-orang kelas CSS (jika berubah) akan mengubah gaya untuk widget lainnya juga.
Berikut telah bekerja untuk saya dengan sangat baik:
Ini adalah agak terlambat menjawab, namun saya stumbled atas pertanyaan ini sambil mencari cara untuk menonaktifkan metode bootrap tombol setelah mengklik mereka dan mungkin menambahkan efek yang bagus (f.e spinner). I've menemukan sebuah perpustakaan besar yang tidak tepat:
http://msurguy.github.io/ladda-bootstrap/
Anda hanya seperti yang diperlukan css dan js, tambahkan beberapa sifat untuk anda tombol dan mengaktifkan lada dengan javascript... Presto ! Tombol anda memiliki kehidupan baru (silakan cek demo untuk melihat betapa indah itu adalah) !
Ini di atas tidak bekerja karena kadang-kadang
sesuaikan dengan kode
Saya tahu jawaban saya terlambat, tapi IMO ini adalah cara termudah untuk beralih Tombol 'mengaktifkan' dan tombol 'menonaktifkan'
Katakanlah anda memiliki yang terlihat seperti ini yang saat ini memungkinkan.
Hanya tambahkan ini:
dan anda akan mendapatkan ini yang akan menonaktifkan tombol
Misalkan anda memiliki tombol-tombol ini pada halaman seperti :
Kode:js