2013-09-25 106 views
-1

我的JS代碼可以確定是否選中了任何給定的HTML複選框並執行其他操作。 但是,只有當至少有兩個項目被選中時,我才需要做一些東西。我目前的代碼部分:卡住檢查是否選中了兩個複選框

if ($('#a5').is(':checked') || $('#a6').is(':checked') 
|| $('#a7').is(':checked')|| $('#a8').is(':checked')) 
    { 
    $('#circle_2').css('background-color', '#FF0'); 
    } 

我想不出它,我應該怎麼我們評估如果選擇至少2個複選框。對此有任何幫助嗎?

+0

顯示你的HTML,那麼我們可以提供合理的答案,而不是猜測。 –

回答

1

獲取複選框,過濾掉不檢查任何,並看看是否有一個以上的左(兩個或更多):

if ($('#a5, #a6, #a7, #a8').filter(':checked').length > 1) { 

    // do stuff 

} 
+0

鑑於目前問題中(缺少)的信息,這幾乎肯定是更好的方法。 –

+0

@DavidThomas - 謝謝,我經常自己使用回調,但不確定問題是什麼,所以回答一般情況? – adeneo

+0

抱歉,我應該提供更多的信息。然而,這個答案形式@adeneo是我正在尋找的東西。非常感謝你 ! – MKM

0

我建議(假設該複選框有一個共同的祖先元素):

$('#circle_2').css('background-color', function(){ 
    return $('#ancestorElementID input[type="radio"]:checked').length > 1 ? '#ff0' : ''; 
}); 
0

或者試試這個,以防你想用一些額外的功能擴展功能。

http://jsfiddle.net/kasperoo/SharD/

$(document).ready(function() { 
    var context = $('#form_container'), 
     checkboxes = 0; 

     context.find('.chbx').change(function() { 
      $(this).is(':checked') ? checkboxes++ : checkboxes--; 
      if (checkboxes > 1) { 
       context.find('p').text('You have selected ' + checkboxes + ' checkboxes.'); 
      } else { 
       context.find('p').text(''); 
      } 
    }); 
}); 
相關問題