ฉันreadonlyจะเพิ่มลงในเฉพาะได้<input>อย่างไร .attr('readonly')ไม่ทำงาน, ไม่เป็นผล.
ฉันreadonlyจะเพิ่มลงในเฉพาะได้<input>อย่างไร .attr('readonly')ไม่ทำงาน, ไม่เป็นผล.
คำตอบ:
jQuery <1.9
$('#inputId').attr('readonly', true);
jQuery 1.9+
$('#inputId').prop('readonly', true);
อ่านเพิ่มเติมเกี่ยวกับความแตกต่างระหว่าง prop และ attr
ใช้$ .prop ()
$("#descrip").prop("readonly",true);
$("#descrip").prop("readonly",false);
$.prop(): Prop จะตั้งค่าแอตทริบิวต์แบบอ่านอย่างเดียวเป็นสตริงว่าง / ว่างดังนั้นหากคุณมี CSS ใด ๆ ที่ใช้ตัวเลือกคุณลักษณะสำหรับ[readonly="readonly"]คุณจะต้องเปลี่ยนเป็น[readonly](หรือรวมทั้งสองอย่างนี้)
อ่านอย่างเดียวเป็นคุณลักษณะตามที่กำหนดไว้ใน html ดังนั้นให้ปฏิบัติเหมือนหนึ่ง
คุณต้องมีสิ่งที่อ่านได้อย่างเดียว = "อ่านอย่างเดียว" ในวัตถุที่คุณกำลังทำงานด้วยหากคุณไม่ต้องการให้แก้ไขได้ และหากคุณต้องการให้แก้ไขได้อีกครั้งคุณจะไม่มีสิ่งที่อ่านได้อย่างเดียว = '' (นี่ไม่ใช่มาตรฐานถ้าฉันเข้าใจถูกต้อง) คุณต้องลบแอตทริบิวต์ทั้งหมด
เช่นนี้ในขณะที่ใช้ jQuery เพิ่มและลบมันเป็นสิ่งที่เหมาะสม
ตั้งค่าแบบอ่านอย่างเดียว:
$("#someId").attr('readonly', 'readonly');
ลบแบบอ่านอย่างเดียว:
$("#someId").removeAttr('readonly');
นี่เป็นทางเลือกเดียวที่เหมาะกับฉันจริงๆ หวังว่ามันจะช่วย!
.attr('readonly', 'readonly')ควรทำเคล็ดลับ .attr('readonly')ส่งกลับค่าของคุณเท่านั้นมันไม่ได้ตั้งค่า
.attrค่าควรจะเป็นสตริงหรือจำนวนไม่บูลีนตามเอกสาร jQuery นี้: api.jquery.com/attr/#attr2นอกจากนี้ HTML "แอตทริบิวต์แบบบูล" ควรจะเป็นสตริงที่ว่างเปล่าหรือมูลค่าของแอตทริบิวต์ ฉันคิดว่าทางออกคือการใช้.prop()เพื่อหลีกเลี่ยงความสับสน
ฉันคิดว่า "ปิดการใช้งาน" ไม่รวมอินพุตจากการส่งบน POST
คุณสามารถปิดการใช้งานแบบอ่านอย่างเดียวโดยใช้ .removeAttr
$('#descrip').removeAttr('readonly');
สำหรับการเปิดใช้งานแบบอ่านอย่างเดียว:
$("#descrip").attr("readonly","true");
สำหรับการปิดการใช้งานแบบอ่านอย่างเดียว
$("#descrip").attr("readonly","");
ใช้คุณสมบัติ setAttribute โปรดทราบว่าในตัวอย่างที่เลือก 1 จะใช้แอตทริบิวต์อ่านได้อย่างเดียวในกล่องข้อความมิฉะนั้นให้ลบแอตทริบิวต์แบบอ่านอย่างเดียว
http://jsfiddle.net/baqxz7ym/2/
document.getElementById("box1").onchange = function(){
if(document.getElementById("box1").value == 1) {
document.getElementById("codigo").setAttribute("readonly", true);
} else {
document.getElementById("codigo").removeAttribute("readonly");
}
};
<input type="text" name="codigo" id="codigo"/>
<select id="box1">
<option value="0" >0</option>
<option value="1" >1</option>
<option value="2" >2</option>
</select>
สำหรับ jQuery เวอร์ชัน <1.9:
$('#inputId').attr('disabled', true);
สำหรับรุ่น jQuery> = 1.9:
$('#inputId').prop('disabled', true);