Tôi đang thử sử dụng một số hộp kiểm asp.net trên một trang, vô hiệu hóa chúng cho phù hợp.Hộp kiểm không hoạt động đúng với IE với jquery
<asp:CheckBox ID='chkMenuItem' runat='server' CssClass='HiddenText' Text='Test' onclick='<%#String.Format("checkChild({0});", Eval("id")) %>' />
về javascript, Tôi đang sử dụng đoạn mã sau
function checkChild(id) {
for (i = 0; i < $("input[id*=hdnParentMenuItemID]").length; i++) {
if ($('input[id*=hdnParentMenuItemID]')[i].value.split(':')[0] == id) {
var childID = $('input[id*=hdnParentMenuItemID]')[i].value.split(':')[1];
if ($("#" + childID).attr("disabled"))
//$("#" + childID).attr('disabled', '');
$("#" + childID).removeAttr("disabled");
else
$("#" + childID).attr('disabled', true);
}
}
}
Bây giờ là các hộp kiểm bên bị vô hiệu hóa khi trang web được tải, phần removeAttr không hoạt động. Tôi đã cố gắng bước qua trình gỡ rối và logic hoạt động hoàn toàn tốt. Nếu các hộp kiểm không bị tắt khi tải trang, mã hoạt động tốt. Tôi đã thử thay thế 'thuộc tính' bị vô hiệu hóa bằng 'kiểm tra' để xem các thuộc tính khác có hoạt động tốt hay không và nó hoạt động hoàn toàn tốt. Tôi đã thử
$("#" + childID).attr('disabled', '');
nhưng nó cũng không hoạt động.
Lưu ý: Nó hoạt động hoàn hảo trên FF và Chrome nhưng không hoạt động trong IE.
Xin cảm ơn,
Vui lòng xem http://www.artzstudio.com/2009/04/jquery-performance-rules/#cache-jquery-objects để dọn dẹp cho vòng lặp. Làm cho kịch bản của bạn không cần thiết chậm bằng cách thực hiện việc kiểm tra này i <$ ("input [id * = hdnParentMenuItemID]"). Đặt $ ("input [id * = hdnParentMenuItemID]") vào một biến cục bộ và cũng đặt thuộc tính length vào một biến cục bộ. – nickytonline