2012-01-13 108 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

相關問題