ปิดการใช้งานและเปิดใช้งานปุ่มอินพุต html


250

ดังนั้นฉันมีปุ่มเช่นนี้:

<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>

ฉันจะปิดและเปิดใช้งานเมื่อฉันต้องการได้อย่างไร ฉันได้ลองแล้วdisabled="disable"แต่การเปิดใช้งานมันกลับเป็นปัญหา ฉันลองตั้งค่ากลับเป็นเท็จ แต่ไม่ได้เปิดใช้งาน


คุณหมายถึงอะไรเปิดใช้งานมันกลับมา? เมื่อคุณปิดการใช้งานที่คุณไม่สามารถเปิดใช้งานได้จากวิธีการเดียวกันMe()ฉันหวังว่าคุณรู้ (เนื่องจากว่าเป็นคนพิการ)
cjds

2
ฉันสิ่งที่ฉันพยายามทำคือปิดใช้งานและเปิดใช้งานปุ่มเมื่อมีเหตุการณ์บางอย่างเกิดขึ้น
k.ken

คำตอบ:


463

ใช้ Javascript

  • ปิดการใช้งานปุ่ม html

    document.getElementById("Button").disabled = true;
  • เปิดใช้งานปุ่ม html

    document.getElementById("Button").disabled = false;
  • ตัวอย่างที่นี่


ใช้ jQuery

jQuery ทุกรุ่นก่อน 1.6

  • ปิดการใช้งานปุ่ม html

    $('#Button').attr('disabled','disabled');
  • เปิดใช้งานปุ่ม html

    $('#Button').removeAttr('disabled');
  • ตัวอย่างที่นี่

jQuery ทุกรุ่นหลังจาก 1.6

  • ปิดการใช้งานปุ่ม html

    $('#Button').prop('disabled', true);
  • เปิดใช้งานปุ่ม html

    $('#Button').prop('disabled', false);
  • ตัวอย่างที่นี่

PS Updated รหัสขึ้นอยู่กับjQuery 1.6.1 การเปลี่ยนแปลง เป็นข้อเสนอแนะให้ใช้ไฟล์ jquery ล่าสุดและprop()วิธีการเสมอ


ฉันต้องการแอททริบิวที่นั่นเพื่อให้ใช้งานได้หรือไม่ like
Disables

ไม่ภายใน$(document).readyคุณสามารถโทร$('#Button').attr('disabled','disabled');ได้ สิ่งนี้จะปิดใช้งานปุ่มในการโหลดหน้า และเมื่อเกิดเหตุการณ์บางอย่างเกิดขึ้นคุณสามารถโทร$('#Button').removeAttr('disabled');เพื่อเปิดใช้งานอีกครั้ง ...
palaѕн

วิธีการเพิ่มสไตล์สีเทาถ้าปิดการใช้งาน?
Lei Yang

1
@LeiYang คุณสามารถเพิ่ม css แบบนี้ได้
palaѕн

เพียงสังเกตว่าจริงและเท็จเป็นบูลีนไม่ใช่สตริงเนื่องจาก palash เขียนอย่างถูกต้อง
Marco

24

เมื่อคุณปิดการใช้งานในสถานที่แรกวิธีการเปิดใช้งานคือการตั้งค่าของทรัพย์สินdisabledfalse

ในการเปลี่ยนdisabledคุณสมบัติใน Javascript คุณใช้สิ่งนี้:

var btn = document.getElementById("Button");
btn.disabled = false;

และแน่นอนว่าจะปิดใช้งานอีกครั้งคุณจะใช้trueแทน

เมื่อคุณติดแท็กคำถามด้วย jQuery คุณสามารถใช้.propวิธีนี้ได้ สิ่งที่ต้องการ:

var btn = $("#Button");
btn.prop("disabled", true);   // Or `false`

นี่เป็น jQuery รุ่นใหม่กว่า วิธีที่เก่ากว่าในการทำเช่นนี้คือการเพิ่มหรือลบแอตทริบิวต์เช่น:

var btn = $("#Button");
btn.attr("disabled", "disabled");
// or
btn.removeAttr("disabled");

การมีอยู่ของdisabledคุณสมบัติจะปิดใช้งานองค์ประกอบดังนั้นคุณจึงไม่สามารถตั้งค่าเป็น "false" แม้ดังต่อไปนี้ควรปิดการใช้งานองค์ประกอบ

<input type="button" value="Submit" disabled="" />

คุณต้องลบแอตทริบิวต์อย่างสมบูรณ์หรือตั้งค่าคุณสมบัติ


จะเกิดอะไรขึ้นถ้าฉันต้องการให้เปิดใช้งานปุ่มในตอนแรกจากนั้นปิดใช้งานในภายหลัง ฉันได้ลองเปิดใช้งาน = "จริง" เป็นคำหลักที่เหมาะสมหรือไม่?
k.ken

2
@ k.ken ไม่คำหลักคือ "ปิดใช้งาน" หากคุณต้องการให้ปุ่มเปิดใช้งานในขั้นต้นอย่าใส่คุณลักษณะdisabledเข้าไปเลย <input type="button" value="Submit" />ใช้เพียงแค่ และเมื่อเปลี่ยนสถานะให้ใช้.prop("disabled", true);(หรือfalse)
Ian

10

คุณสามารถทำสิ่งนี้ได้อย่างง่ายดายด้วย JavaScript เพียงแค่ไม่ต้องใช้ไลบรารี

เปิดใช้งานปุ่ม

document.getElementById("Button").disabled=false;

ปิดใช้งานปุ่ม

 document.getElementById("Button").disabled=true;

ไม่จำเป็นต้องใช้ไลบรารีภายนอก




0

หากไม่มี jQuery ปิดการใช้งานอินพุตจะง่ายขึ้น

Button.disabled=1;


0
 <!--Button Disable Script-->
    <script type="text/javascript">
        function DisableButton() {
            document.getElementById("<%=btnSave.ClientID %>").disabled = true;
        }
        window.onbeforeunload = DisableButton;
    </script>
    <!--Button Disable Script-->

0

ในขณะที่ไม่เกี่ยวข้องกับคำถามโดยตรงหากคุณกระโดดไปที่คำถามนี้ที่ต้องการปิดการใช้งานอย่างอื่นนอกเหนือจากองค์ประกอบการป้อนข้อมูลทั่วไป button, input, textareaไวยากรณ์จะไม่ทำงาน

หากต้องการปิดใช้งาน div หรือการขยายให้ใช้setAttribute

document.querySelector('#somedivorspan').setAttribute('disabled', true);

PS: Gotcha เรียกสิ่งนี้เฉพาะเมื่อคุณตั้งใจจะปิดการใช้งาน ข้อผิดพลาดใน chrome รุ่น 83 ทำให้สิ่งนี้ปิดการใช้งานเสมอแม้ว่าพารามิเตอร์ที่สองจะเป็นเท็จ


-2

มันจะทำงานได้อย่างแน่นอน

เพื่อปิดการใช้งานปุ่ม

$('#btn_id').button('disable');

เพื่อเปิดใช้งานปุ่ม

$('#btn_id').button('enable');

-6

ติดกับ php ...

ทำไมไม่อนุญาตให้ปุ่มปรากฏเมื่อตรงตามเกณฑ์ด้านบน

<?
if (whatever == something) {
    $display = '<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>';
    return $display;
}
?>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.