2012-01-13 115 views
2

我有一个复选框列表。在页面的加载我想我的第一个复选框是真实的,其他人是禁用。我需要检查复选框列表中的一个复选框,其他人应该禁用。如果使用未选中复选框,则其他人应该是启用意味着只允许一个复选框检查。设置第一个复选框已选中,其他客户端中的复选框列表已禁用

我的JavaScript代码是在这里,但它的页面加载其未检查第一个复选框,我也想使用checkboxlist时每个复选框的ID。

function CheckOptions(CheckBoxList) { 
     var checkboxlist = document.getElementById('CheckBoxList1'); 

      var checkedCount = 0; 
      var options = CheckBoxList.getElementsByTagName('input');     
      for (var i = 0; i < options.length; i++) { 
       if (options[i].checked) {      
        checkedCount += 1; 
       } 
      } 

      if (checkedCount > 0) { 
       for (var j = 0; j < options.length; j++) { 
        if (!options[j].checked) 
         options[j].disabled = true; 

       }    } 
      else { 
       for (var k = 0; k < options.length; k++) { 
        options[k].disabled = false; 
       } 
      } 

    } 
+1

为了解决这个问题,您可以使用单选按钮。 – Murtaza 2012-01-13 09:43:43

+0

您应该考虑使用单选按钮。你所追求的行为是他们的默认行为。此外,它似乎看着你的代码,你的复选框共享相同的ID。由于ID必须是唯一的,因此这不起作用。 – 2012-01-13 09:44:18

+0

感谢您的快速响应。对不起,但我不能使用RadiobuttonList。我必须只使用CheckBoxList,甚至不使用CheckBoxes。请帮忙。 – 2012-01-13 11:00:23

回答

4

如果您只想一次检查一个,听起来像是一组单选按钮可以更好地满足您的目的。

1
$(function() { 
    var checkboxes = $("input[type=checkbox]"); 

    // select the first one on load 
    checkboxes.eq(0).attr("checked", "checked"); 
    checkboxes.each(function(i, e) { 
     if (i > 0) { 
      $(e).attr("disabled", "disabled"); 
     } 
    }) 

    // handle further selections: 
    checkboxes.click(function() { 
     if ($(this).attr("checked")) { 
      var t = this; 
      checkboxes.each(function(i, e) { 
       if (e != t) { 
        $(e).attr("disabled", "disabled"); 
       } 
      }); 
     } else { 
      checkboxes.attr("disabled", null) 
     } 
    }); 

}); 
+0

不,我不能使用Radiobutton列表。我不得不使用复选框列表,甚至没有复选框。还有一件事,我在我的复选框列表中有四项,即今天,月份,星期,日期。当我检查日期时,我有一个面板应该在“日期”的检查中可见。请帮忙。 – 2012-01-13 10:30:24

+0

您好piotrb,您提供的代码不工作,以及在CheckboxList的onclick事件中写什么。请帮助它是紧急的。 – 2012-01-13 10:52:22

+0

嗨。你能发布你的html代码吗?如果它是由asp/php /其他产生的,请发布生成的代码。 – piotrb 2012-01-13 18:17:07

相关问题