Làm thế nào tôi có thể thêm readonly
vào một cụ thể <input>
? .attr('readonly')
không hoạt động.
Làm thế nào tôi có thể thêm readonly
vào một cụ thể <input>
? .attr('readonly')
không hoạt động.
Câu trả lời:
jQuery <1.9
$('#inputId').attr('readonly', true);
jQuery 1.9+
$('#inputId').prop('readonly', true);
Tìm hiểu thêm về sự khác biệt giữa prop và attr
Sử dụng $ .prop ()
$("#descrip").prop("readonly",true);
$("#descrip").prop("readonly",false);
$.prop()
: Prop sẽ đặt thuộc tính chỉ đọc thành chuỗi trống / trống, vì vậy nếu bạn có bất kỳ CSS nào sử dụng bộ chọn thuộc tính cho [readonly="readonly"]
, thì bạn sẽ phải thay đổi thành [readonly]
(hoặc bao gồm cả hai).
Readonly là một thuộc tính như được định nghĩa trong html, vì vậy hãy coi nó như một thuộc tính.
Bạn cần phải có một cái gì đó như readonly = "readonly" trong đối tượng bạn đang làm việc nếu bạn muốn nó không thể chỉnh sửa được. Và nếu bạn muốn nó có thể chỉnh sửa lại, bạn sẽ không có cái gì đó như readonly = '' (điều này không chuẩn nếu tôi hiểu đúng). Bạn thực sự cần phải loại bỏ toàn bộ thuộc tính.
Như vậy, trong khi sử dụng jquery thêm nó và loại bỏ nó là những gì có ý nghĩa.
Đặt một cái gì đó chỉ đọc:
$("#someId").attr('readonly', 'readonly');
Xóa chỉ đọc:
$("#someId").removeAttr('readonly');
Đây là sự thay thế duy nhất thực sự hiệu quả với tôi. Hy vọng nó giúp!
.attr('readonly', 'readonly')
nên làm thủ thuật. Của bạn .attr('readonly')
chỉ trả về giá trị, nó không đặt một.
.attr
giá trị chỉ nên là một chuỗi hoặc số, không phải là một boolean, theo các tài liệu jQuery: api.jquery.com/attr/#attr2 Ngoài ra, HTML "thuộc tính boolean" chỉ nên chuỗi rỗng hoặc giá trị của thuộc tính. Tôi nghĩ rằng giải pháp là sử dụng .prop()
để tránh nhầm lẫn.
Tôi nghĩ rằng "bị vô hiệu hóa" loại trừ đầu vào được gửi trên POST
Để cho phép chỉ đọc:
$("#descrip").attr("readonly","true");
Để vô hiệu hóa chỉ đọc
$("#descrip").attr("readonly","");
Sử dụng thuộc tính setAttribution. Lưu ý trong ví dụ rằng nếu chọn 1 áp dụng thuộc tính chỉ đọc trên hộp văn bản, nếu không hãy xóa thuộc tính chỉ đọc.
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>
Đối với phiên bản jQuery <1.9:
$('#inputId').attr('disabled', true);
Đối với phiên bản jQuery> = 1.9:
$('#inputId').prop('disabled', true);