2014-10-07 130 views
0

你好,我想知道是否有可能使用jQuery來檢查複選框是否以一種聰明的方式被檢查,比方說,我們使用一個開關案例與一堆輸入字段,作爲一個例子,我有5個複選框。 公司名稱,用戶名,年齡,密碼。 如果您查看公司,我可以運行我的代碼。使用jQuery檢查是否選中了多個複選框?

我想這樣做的儘可能jQuery中最聰明的辦法,比方說,我想在僞像這樣

switch(checkboxarray?) { 

    case Company: 
    document.write("Company: INPUT FIELD"); 
    break; 

} 

我看着這一點,但我只發現提供了一個解決方案功能一個複選框

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $('#messageVisibilityCheckbox').change(
     function() { 
      if ($('#messageVisibilityCheckbox').is(':checked')) { 
       alert('is checked'); //document.write("Company: INPUT FIELD); 
      } 
      else { 

      } 
    }); 
}); 
</script> 

和HTML:

sinput type="checkbox" id="messageVisibilityCheckbox" name="messageVisibilityCheckbox"/> 

所以不是CRE在一堆函數中,我想創建一個帶有開關盒的函數或者其他相同的函數,我可以爲每個複選框添加幾行。 我需要這個的原因是因爲我會有30個複選框,其中一半需要額外的輸入字段,任何幫助或來源是高度讚賞!謝謝!

+2

你的問題不清楚,你的僞代碼沒有幫助清除任何東西。在你以「最聰明的方式」做任何事情之前,儘量做* *。你並不需要jQuery,你應該可以解決這個問題。 – Tomalak 2014-10-07 18:35:04

+1

感謝您的意見,我現在修復了它,因此應該更易於理解! – Denniz 2014-10-07 18:56:13

+0

肯定好多了! – Tomalak 2014-10-07 18:59:34

回答

4

您可以將多個單獨的HTML元素分組在同一父項下,並使用jQuery's event delegation

$(function() { 
 
    $('#allCheckboxes').on("change", ":checkbox", function() { 
 
     if (this.checked) { 
 
      console.log(this.id + ' is checked'); 
 
     } else { 
 
      console.log(this.id + ' is unchecked'); 
 
     } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 

 
<div id="allCheckboxes"> 
 
    <input type="checkbox" id="chkBox1" name="Box1" /> 
 
    <input type="checkbox" id="chkBox2" name="Box2" /> 
 
    <input type="checkbox" id="chkBox3" name="Box3" /> 
 
    <input type="checkbox" id="chkBox4" name="Box4" /> 
 
    <input type="checkbox" id="chkBox5" name="Box5" /> 
 
</div>

提示:不要使用document.write()。永遠。只要忘記它存在,沒有理由證明使用此功能。

+0

非常感謝你!到底是什麼我! – Denniz 2014-10-07 20:33:19

相關問題