<form id="target">
....
</form>
<form id="target">
....
</form>
คำตอบ:
ในรุ่นเก่าที่คุณสามารถattr
ใช้ได้ ตั้งแต่ jQuery 1.6 คุณควรใช้prop
แทน:
$("#target :input").prop("disabled", true);
หากต้องการปิดการใช้งานองค์ประกอบแบบฟอร์มทั้งหมดภายใน 'เป้าหมาย' ดู:input
:
ตรงกับองค์ประกอบการป้อนข้อความ textarea เลือกและปุ่มทั้งหมด
หากคุณต้องการเพียง<input>
องค์ประกอบ:
$("#target input").prop("disabled", true);
$(this).closest('form').find('input').prop('disabled', true);
@OlivierPons ไม่แน่ใจว่าคุณสามารถรวมที่ดีกว่าฉันยังคงค่อนข้างไม่รบกวนที่ jQuery
ตัวอย่างข้างต้นไม่ถูกต้องทางเทคนิค ตาม jQuery ล่าสุดให้ใช้prop()
วิธีการที่ควรใช้กับสิ่งต่างๆเช่นปิดการใช้งาน ดูหน้า API ของพวกเขา
หากต้องการปิดการใช้งานองค์ประกอบแบบฟอร์มทั้งหมดภายใน 'เป้าหมาย' ให้ใช้: ตัวเลือกอินพุตซึ่งตรงกับองค์ประกอบอินพุตข้อความ textarea เลือกและปุ่มทั้งหมด
$("#target :input").prop("disabled", true);
หากคุณต้องการเพียงองค์ประกอบใช้สิ่งนี้
$("#target input").prop("disabled", true);
วิธีที่รัดกุมยิ่งขึ้นคือการใช้เอ็นจิ้นตัวเลือก ดังนั้นเพื่อปิดการใช้งานองค์ประกอบแบบฟอร์มทั้งหมดใน div หรือแบบฟอร์มผู้ปกครอง
$myForm.find(':input:not(:disabled)').prop('disabled',true)
คุณสามารถเพิ่ม
<fieldset class="fieldset">
จากนั้นคุณสามารถโทร
$('.fieldset').prop('disabled', true);
หากต้องการปิดใช้งานฟอร์มทั้งหมดให้ง่ายเหมือนเขียน:
jQuery 1.6+
$("#form :input").prop("disabled", true);
jQuery 1.5 และต่ำกว่า
$("#form :input").attr('disabled','disabled');
ด้วยหนึ่งบรรทัดนี้คุณสามารถปิดใช้งานฟิลด์อินพุตใด ๆ ในแบบฟอร์ม
$('form *').prop('disabled', true);
คำตอบที่ชัดเจน (ครอบคลุมการเปลี่ยนแปลงของ jQuery api ที่รุ่น 1.6) ได้รับจากGnarf
$("#target :input").prop("disabled", true);