มักจะใช้prop()
วิธีการเปิดหรือปิดการใช้งานองค์ประกอบเมื่อใช้ jQuery (ดูด้านล่างสำหรับทำไม)
ในกรณีของคุณมันจะเป็น:
$("#edit").click(function(event){
event.preventDefault();
$('.inputDisabled').prop("disabled", false); // Element(s) are now enabled.
});
ตัวอย่าง jsFiddle ที่นี่
ทำไมต้องใช้prop()
เมื่อคุณสามารถใช้attr()
/ removeAttr()
เพื่อทำสิ่งนี้?
โดยทั่วไปprop()
ควรจะใช้เมื่อได้รับหรือการตั้งค่าคุณสมบัติ (เช่นautoplay
, checked
, disabled
และrequired
หมู่คนอื่น ๆ )
โดยการใช้removeAttr()
คุณจะลบdisabled
แอตทริบิวต์ออกอย่างสมบูรณ์- ในขณะที่prop()
เพียงตั้งค่าบูลีนพื้นฐานของคุณสมบัติเป็นเท็จ
ในขณะที่สิ่งที่คุณต้องการสามารถทำได้โดยใช้attr()
/ removeAttr()
ไม่ได้หมายความว่าควรจะทำ (และอาจทำให้เกิดพฤติกรรมที่แปลก / มีปัญหาเช่นในกรณีนี้)
สารสกัดต่อไปนี้ (นำมาจากเอกสาร jQuery สำหรับ prop () ) อธิบายจุดเหล่านี้โดยละเอียดยิ่งขึ้น:
"ความแตกต่างระหว่างคุณลักษณะและคุณสมบัติอาจมีความสำคัญในสถานการณ์ที่เฉพาะเจาะจงก่อน jQuery 1.6 .attr()
บางครั้งวิธีนำค่าคุณสมบัติเข้ามาในบัญชีเมื่อดึงคุณสมบัติบางอย่างซึ่งอาจก่อให้เกิดพฤติกรรมที่ไม่สอดคล้องกันในขณะที่ jQuery 1.6 .prop()
วิธีให้วิธีการดึงข้อมูลอย่างชัดเจน ค่าคุณสมบัติในขณะที่
.attr()
ดึงคุณสมบัติ
"คุณสมบัติโดยทั่วไปส่งผลกระทบต่อสถานะไดนามิกขององค์ประกอบ DOM โดยไม่เปลี่ยนแอตทริบิวต์ HTML ที่เป็นอนุกรมตัวอย่างเช่นvalue
คุณสมบัติขององค์ประกอบอินพุตdisabled
คุณสมบัติของอินพุตและปุ่มหรือchecked
คุณสมบัติของช่องทำเครื่องหมาย.prop()
วิธีควรใช้เพื่อตั้งค่าdisabled
และchecked
แทนที่จะเป็น.attr()
วิธี. .val()
วิธีการที่ควรจะใช้สำหรับการรับและการตั้งค่า
value
."