Selalu gunakan prop()
metode untuk mengaktifkan atau menonaktifkan elemen saat menggunakan jQuery (lihat alasannya di bawah).
Dalam kasus Anda, itu akan menjadi:
$("#edit").click(function(event){
event.preventDefault();
$('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});
Contoh jsFiddle di sini.
Mengapa menggunakan prop()
ketika Anda bisa menggunakan attr()
/ removeAttr()
untuk melakukan ini?
Pada dasarnya, prop()
harus digunakan ketika mendapatkan atau pengaturan properti (seperti autoplay
, checked
, disabled
dan required
antara lain).
Dengan menggunakan removeAttr()
, Anda benar-benar menghapus disabled
atribut itu sendiri - sementara prop()
hanya menyetel nilai boolean yang mendasari properti menjadi false.
Sementara apa yang ingin Anda lakukan dapat dilakukan menggunakan attr()
/ removeAttr()
, itu tidak berarti harus dilakukan (dan dapat menyebabkan perilaku aneh / bermasalah, seperti dalam kasus ini).
Ekstrak berikut (diambil dari dokumentasi jQuery for prop () ) menjelaskan poin-poin ini secara lebih rinci:
"Perbedaan antara atribut dan properti dapat menjadi penting dalam situasi tertentu. Sebelum jQuery 1.6, .attr()
metode ini terkadang memperhitungkan nilai properti ketika mengambil beberapa atribut, yang dapat menyebabkan perilaku tidak konsisten. Pada jQuery 1.6, .prop()
metode ini menyediakan cara untuk secara eksplisit mengambil nilai properti, saat
.attr()
mengambil atribut. "
"Properti umumnya memengaruhi keadaan dinamis elemen DOM tanpa mengubah atribut HTML serial. Contohnya termasuk value
properti elemen input, disabled
properti input dan tombol, atau checked
properti kotak centang. .prop()
Metode ini harus digunakan untuk mengatur disabled
dan checked
alih-alih yang .attr()
metode. The .val()
metode harus digunakan untuk mendapatkan dan pengaturan
value
."