2014-07-14 149 views
0

我需要始終檢查至少一個複選框。兩者都可以同時檢查,但我至少需要檢查一個。如果未選中其他選項,則禁用複選框jQuery

我試圖用下面的代碼來做到這一點。這個想法是檢查複選框是否未選中,並將禁用的屬性添加到其他複選框。

因此,例如...

如果未選中字母,支票號碼和禁用它,用戶無法取消勾選。

if (letters.checked === false) { // if letters isn't checked 
    numbers.prop("disabled", true); // disable numbers 
    numbers.checked = true; // keep numbers checked 
} else if (numbers.checked === false) { // else if numbers isn't checked 
    letters.prop("disabled", true); // disable letters 
    letters.checked = true; // keep letters checked 
} 

Fiddle

回答

2

這樣你的意思是:)工作演示:http://jsfiddle.net/Y3dC3/

  • 我已經加入.on變化事件。
  • 你也可以使用.is檢查是否檢查是否被檢查。

希望這可以滿足您的需求。

代碼

$(document).ready(function() { 

    $('input[type=checkbox]').change(function() { 
     var letters = $("#letters"), 
      numbers = $("#numbers"); 

     if (!letters.is(':checked')) { // if letters isn't checked 
      numbers.prop("disabled", true); // disable numbers 
      numbers.checked = true; // keep numbers checked 
     } else if (!numbers.is(':checked')) { // else if numbers isn't checked 
      letters.prop("disabled", true); // disable letters 
      letters.checked = true; // keep letters checked 
     } 
    }); 
}); 
+1

謝謝你!我向它添加了[this](http://jsfiddle.net/Y3dC3/1/),這樣如果兩者都選中,禁用的屬性關閉。 ;) – Matthew

+0

@Matthew所有好布魯沃! #lookatthatsmoothbeauty小提琴!很高興幫助':)' –

0

你將需要把這種邏輯到事件處理程序,如果你想它開火每次檢查狀態更改時間。目前,它只能運行在$(document).ready之後,從此不會運行。

+0

原始海報如何做到這一點的例子可能是不錯的:) –

+1

抓住一個人一條魚,教一個人去釣魚等等。我討厭當人們在SO上喂其他人的代碼。如果你不能採取一點幫助,並用它跑到谷歌,我認爲你永遠不會成爲一名軟件開發人員。 –

+0

是啊,夠公平的:) –

相關問題