2012-11-22 33 views
5

Tôi đã tìm kiếm trên tất cả nhưng tôi vẫn không thể sửa chữa nó. Xin giúp:Cách bật nhóm radio bằng hộp kiểm?

Đây là mã js của tôi:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#email_acc").click(function() { 
      if ($(this).is(":checked")) { 
       $("#email_group").attr("enabled","enabled"); 
      } 
     }); 

     $("#system_acc").click(function() { 
      if ($(this).is(":checked")) { 
       $("#system_group").attr("enabled","enabled"); 
      } 
     }); 
    }); 
</script> 

Sau đây cho thấy mã html của tôi:

<input type="checkbox" name="email_acc" id="email_acc" />Email Account 
<input type="checkbox" name="sys_acc" id="sys_acc" />System Account 

<input type="radio" name="radio_email" value="create" class="email_group" id="radio_email_0" disabled="disabled"/>New 
<input type="radio" name="radio_email" value="change" id="radio_email_1" disabled="disabled"/>Change 
<input type="radio" name="radio_email" value="terminate" id="radio_email_2" disabled="disabled"\ />Termination 

<input type="radio" name="radio_system" value="create" class="system_group" id="radio_system_0" disabled="disabled"/>New 
<input type="radio" name="radio_system" value="change" id="radio_system_1" disabled="disabled" />Change 
<input type="radio" name="radio_system" value="terminate" id="radio_system_2" disabled="disabled" />Termination 

tôi donno những gì là problem.It chỉ không hoạt động.

Trả lời

0

Không có thuộc tính hoặc thuộc tính "enabled", chỉ một thuộc tính hoặc thuộc tính "disabled" có thể được đặt thành false để bật (các) thành phần được đề cập. ("Thuộc tính" nằm trong html nguồn của bạn, nhưng thay đổi động được thực hiện cho "thuộc tính", đặt thay đổi động thành giá trị boolean để tắt hoặc không.)

Trừ khi sử dụng phiên bản cũ của jQuery, bạn nên sử dụng .prop() method để cập nhật thuộc tính này. Để kích hoạt toàn bộ nhóm các nút radio, bạn phải chọn tất cả chúng bằng thuộc tính name (hoặc cung cấp cho chúng class phổ biến và chọn theo đó).

$("#email_acc").click(function() { 
    if (this.checked) { 
     $('input[name="radio_email"]').prop('disabled', false); 
    } 
}); 

// and the same for the other checkbox and group. 

Lưu ý rằng hộp kiểm thứ hai của bạn có một id="sys_acc" nhưng JS của bạn đang cố gắng để lựa chọn với "#system_acc" - bạn cần phải chắc chắn rằng họ phù hợp.

Nếu bạn cần phải vô hiệu hóa nhóm một lần nữa nếu bỏ chọn hộp kiểm sau đó bạn có thể làm những điều sau đây, loại bỏ các tuyên bố if và thiết lập disabled tài sản để nghịch đảo của checked tài sản:

$('#email_acc').click(function() { 
    $('input[name="radio_email"]').prop('disabled', !this.checked); 
}); 

// and again the same idea for the other checkbox and group. 

Demo: http://jsfiddle.net/UqTB3/

Lưu ý rằng trong cả hai trường hợp tôi đã sử dụng this.checked thay vì $(this).is(":checked"): tôi tìm thấy những cựu dễ đọc, và nó là hiệu quả hơn để kiểm tra tài sản checked phần tử DOM của trực tiếp hơn đến tạo một đối tượng jQuery và sử dụng .is(":checked"). Nhưng nếu bạn thực sự quan tâm đến việc sử dụng jQuery cho mọi thứ bạn có thể thực hiện thay thế phù hợp.

0
$("#email_acc").click(function() 
    { 
     if ($(this).is(":checked")) 
     { 
      $("#email_group").attr("disabled","false"); 
        or 
      $("#email_group").attr("disabled",false); 
     } 
    }); 
4
$(document).ready(function() 
{ 

    $("#email_acc").click(function() 
    { 
     if ($(this).is(":checked")) 
     { 
      $("input[name='radio_email']").removeAttr("disabled"); 
      //  ^----------------enable all the checkbox with common name 
     } 
    }); 

    $("#sys_acc").click(function() 
    //  ^---------corrected id 
    { 
     if ($(this).is(":checked")) 
     { $("input[name='radio_system']").removeAttr("disabled"); 
     //   ^----------------enable all the checkbox with common name 
     } 
    }); 
});​ 

DEMO

DEMO 2

Mã được cập nhật cho các yêu cầu mới từ OP, làm sạch đang nhờ nnnnnn

CẬP NHẬTDEMO 3

+0

Trong bản demo các nút radio không quay trở lại khi bỏ chọn hộp kiểm. –

+0

Nó hoạt động ngay bây giờ! ~ Điều này thật tuyệt vời ~ Cảm ơn bạn rất nhiều, D Bằng cách này, làm thế nào để làm cho nó để vô hiệu hóa các nhóm radio khi hộp kiểm được bỏ chọn một lần nữa? – Newbie

+0

@Derek OP câu hỏi không đề cập đến bất cứ điều gì về điều đó – Sibu

1
  1. Thêm tên trong html đầu vào
  2. tên nên giống

    <script type="text/javascript"> 
        document.getElementById('cek3').onchange = function() { 
         document.getElementById('fasilitas_kost1').disabled = !this.checked; 
         document.getElementById('fasilitas_kost2').disabled = !this.checked; 
         document.getElementById('fasilitas_kost3').disabled = !this.checked; 
         document.getElementById('fasilitas_kost4').disabled = !this.checked; 
         document.getElementById('fasilitas_kost5').disabled = !this.checked; 
         document.getElementById('fasilitas_kost6').disabled = !this.checked; 
         document.getElementById('fasilitas_kost7').disabled = !this.checked; 
        }; 
    </script> 
    
Các vấn đề liên quan