$input.disabled = true;
atau
$input.disabled = "disabled";
Yang merupakan cara standar? Dan, sebaliknya, bagaimana Anda mengaktifkan input yang dinonaktifkan?
javascript
jquery
html-input
disabled-input
Oh Tuhan
sumber
sumber
Jawaban:
jQuery 1.6+
Untuk mengubah
disabled
properti Anda harus menggunakan.prop()
fungsi.jQuery 1.5 dan di bawah
The
.prop()
Fungsi tidak ada, tetapi.attr()
tidak sama:Setel atribut yang dinonaktifkan.
Untuk mengaktifkan kembali, metode yang tepat adalah menggunakan
.removeAttr()
Dalam versi jQuery apa pun
Anda selalu dapat mengandalkan objek DOM yang sebenarnya dan mungkin sedikit lebih cepat daripada dua opsi lainnya jika Anda hanya berurusan dengan satu elemen:
Keuntungan menggunakan metode
.prop()
atau.attr()
adalah Anda dapat mengatur properti untuk banyak item yang dipilih.Catatan: Dalam 1.6 ada
.removeProp()
metode yang terdengar sangat miripremoveAttr()
, tetapi HARUS TIDAK DIGUNAKAN pada properti asli seperti'disabled'
Kutipan dari dokumentasi:Bahkan, saya ragu ada banyak kegunaan yang sah untuk metode ini, alat peraga boolean dilakukan sedemikian rupa sehingga Anda harus mengaturnya menjadi salah alih-alih "menghapus" mereka seperti rekan "atribut" mereka di 1,5
sumber
':input'
, bukan hanya'input'
. Yang terakhir hanya memilih elemen <input> yang sebenarnya.input,textarea,select,button
sedikit lebih baik untuk digunakan daripada:input
-:input
sebagai pemilih cukup tidak efisien karena harus memilih*
kemudian loop atas setiap elemen dan filter dengan tagname - jika Anda melewati 4 pemilih tagname secara langsung, JAUH lebih cepat. Juga,:input
bukan pemilih CSS standar, sehingga setiap perolehan kinerja yang mungkin dariquerySelectorAll
hilang.removeProp("disabled")
itu menyebabkan masalah "properti dihapus sepenuhnya dan tidak ditambahkan lagi" seperti yang ditunjukkan oleh @ThomasDavidBaker, dalam hal beberapa browser seperti Chrome, sedangkan itu berfungsi dengan baik pada beberapa seperti Firefox. Kita harus benar-benar berhati-hati di sini. Selalu gunakan.prop("disabled",false)
sebagai gantinyaHanya demi konvensi baru && menjadikannya mudah beradaptasi di masa depan (kecuali hal-hal berubah secara drastis dengan ECMA6 (????):
dan
sumber
$(document).on('event_name', '#your_id', function() {...})
bukannya$('#your_id').on('event_name', function() {...})
. Seperti yang dijelaskan dalam dokumentasi jQuery .on () , mantan menggunakan delegasi dan mendengarkan semuaevent_name
peristiwa yang munculdocument
dan memeriksa mereka untuk pencocokan#your_id
. Yang terakhir hanya mendengarkan$('#your_id')
acara tertentu dan itu berskala lebih baik.Terkadang Anda perlu menonaktifkan / mengaktifkan elemen form seperti input atau textarea. Jquery membantu Anda membuat ini dengan mudah dengan menyetel atribut yang dinonaktifkan ke "nonaktif". Untuk misalnya:
Untuk mengaktifkan elemen yang dinonaktifkan, Anda perlu menghapus atribut "nonaktif" dari elemen ini atau mengosongkannya. Untuk misalnya:
lihat: http://garmoncheg.blogspot.fr/2011/07/how-to-disableenable-element-with.html
sumber
atau
sumber
Anda dapat menempatkan ini di suatu tempat global dalam kode Anda:
Dan kemudian Anda dapat menulis hal-hal seperti:
sumber
prop
dan tidakattr
dengandisabled
properti agar berfungsi dengan benar (dengan asumsi jQuery 1.6 atau lebih tinggi).attr
? Saya menggunakan kode di atas dalam beberapa proyek dan sejauh yang saya ingat itu berfungsi okchecked
properti kotak centang. Menggunakanattr
tidak akan memberikan hasil yang sama.Jika Anda hanya ingin membalikkan keadaan saat ini (seperti perilaku tombol sakelar):
sumber
Ada banyak cara menggunakannya, Anda dapat mengaktifkan / menonaktifkan elemen apa pun :
Pendekatan 1
Pendekatan 2
Jika Anda menggunakan jQuery 1.7 atau versi yang lebih tinggi maka gunakan prop (), bukan attr ().
Jika Anda ingin mengaktifkan elemen apa pun maka Anda hanya perlu melakukan kebalikan dari apa yang Anda lakukan untuk membuatnya dinonaktifkan. Namun jQuery menyediakan cara lain untuk menghapus atribut apa pun.
Pendekatan 1
Pendekatan 2
Pendekatan 3
Sekali lagi, jika Anda menggunakan jQuery 1.7 atau versi yang lebih tinggi maka gunakan prop (), bukan attr (). Yaitu. Ini adalah bagaimana Anda mengaktifkan atau menonaktifkan elemen apa pun menggunakan jQuery.
sumber
Pembaruan untuk 2018:
Sekarang tidak ada kebutuhan untuk jQuery dan itu sudah lama sejak
document.querySelector
ataudocument.querySelectorAll
(untuk beberapa elemen) melakukan pekerjaan hampir persis sama dengan $, ditambah yang lebih eksplisitgetElementById
,getElementsByClassName
,getElementsByTagName
Menonaktifkan satu bidang kelas "input-checkbox"
atau beberapa elemen
sumber
Anda bisa menggunakan metode jQuery prop () untuk menonaktifkan atau mengaktifkan elemen form atau mengontrol secara dinamis menggunakan jQuery. Metode prop () memerlukan jQuery 1.6 ke atas.
Contoh:
sumber
Nonaktifkan:
Memungkinkan:
sumber
Nonaktifkan true untuk tipe input:
sumber
$("input[name=method]").prop('disabled', true);
ini bekerja untuk saya
sumber
Saya menggunakan @gnarf jawab dan menambahkannya sebagai fungsi
Kemudian gunakan seperti ini
sumber
2018, tanpa JQuery (ES6)
Nonaktifkan semua
input
:Nonaktifkan
input
denganid="my-input"
Pertanyaannya adalah dengan JQuery, itu hanya FYI.
sumber
Pendekatan 4 (ini merupakan perluasan dari jawaban pembuat kode liar )
sumber
Gunakan seperti ini,
sumber
sumber
Di jQuery Mobile:
Untuk menonaktifkan
Untuk mengaktifkan
sumber