2014-10-07 101 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

相关问题