Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环jQuery中的复选框列表以匹配重复的类_Javascript_Jquery_Checkbox - Fatal编程技术网

Javascript 循环jQuery中的复选框列表以匹配重复的类

Javascript 循环jQuery中的复选框列表以匹配重复的类,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我试图确定是否有人选中了同一类的两个复选框 HTML在这里: <fieldset class="activities"> <legend>Register for Activities</legend> <label> <input type="checkbox" name="all"> Main Conference — $200 </label> <label class="tues_mor

我试图确定是否有人选中了同一类的两个复选框

HTML在这里:

<fieldset class="activities">
  <legend>Register for Activities</legend>
  <label>
    <input type="checkbox" name="all"> Main Conference — $200
  </label>
  <label class="tues_morn">
    <input type="checkbox" name="js-frameworks"> JavaScript Frameworks Workshop — Tuesday 9am-12pm, $100
  </label>
  <label class="tues_aft">
    <input type="checkbox" name="js-libs"> JavaScript Libraries Workshop — Tuesday 1pm-4pm, $100
  </label>
  <label class="tues_morn">
    <input type="checkbox" name="express"> Express Workshop — Tuesday 9am-12pm, $100
  </label>
  <label class="tues_aft">
    <input type="checkbox" name="node"> Node.js Workshop — Tuesday 1pm-4pm, $100
  </label>          
  <label>
    <input type="checkbox" name="build-tools"> Build tools Workshop — Wednesday 9am-12pm, $100
  </label>
  <label> 
    <input type="checkbox" name="npm"> npm Workshop — Wednesday 1pm-4pm, $100
  </label>
</fieldset>

首先,您应该将class=“tues_time”移动到输入,而不是标签

一旦你做到了这一点,这将为你工作

// Get the inputs, rather than the labels
var checkBoxes = $('.activities > label > input');

checkBoxes.change(function() {
  var tuesMorn = checkBoxes.filter('.tues_morn:checkbox:checked').length;
  var tuesAft = checkBoxes.filter('.tues_aft:checkbox:checked').length;
  if (tuesMorn > 1) {
      alert("You Signed Up For Too Many Morning Classes");
  } else if (tuesAft > 1) {
      alert ("You Signed Up For Too Many Aft Classe")
  }
});
与其将它们添加到更高范围的变量中,不如在每次发生更改时对它们进行计数。它更简单,易于阅读和维护,这很好!:)


首先,您应该将class=“tues_time”移动到输入上,而不是移动到标签上

一旦你做到了这一点,这将为你工作

// Get the inputs, rather than the labels
var checkBoxes = $('.activities > label > input');

checkBoxes.change(function() {
  var tuesMorn = checkBoxes.filter('.tues_morn:checkbox:checked').length;
  var tuesAft = checkBoxes.filter('.tues_aft:checkbox:checked').length;
  if (tuesMorn > 1) {
      alert("You Signed Up For Too Many Morning Classes");
  } else if (tuesAft > 1) {
      alert ("You Signed Up For Too Many Aft Classe")
  }
});
与其将它们添加到更高范围的变量中,不如在每次发生更改时对它们进行计数。它更简单,易于阅读和维护,这很好!:)


这里是一个工作示例,您可能需要根据自己的具体需求对其进行调整

var$activities=$('.activities输入[type=“checkbox”]”);
//活动
var tuesMorn=0;
var tuesAft=0;
$activities.change(函数(){
var activityClass=$(this).closest('label').attr(“class”);
var isChecked=此项已检查;
如果(activityClass===“周二上午”){
tuesMorn=isChecked?tuesMorn+1:tuesMorn-1;
如果(tuesMorn>1){
警惕(“你早上报名的课太多了”);
}
}else if(activityClass==='tues_aft'){
tuesAft=isChecked?tuesAft+1:tuesAft-1;
如果(tuesAft>1){
警告(“你报名的船尾舱太多了”)
}
}
});
。周二上午{
背景:橙色;
}
星期二船尾{
背景:浅蓝色;
}

登记参加活动
主要会议-200美元
JavaScript框架研讨会-周二上午9点至下午12点,100美元
JavaScript库研讨会-周二下午1点到4点,100美元
快速工作坊-星期二上午9点至下午12点,100美元
Node.js研讨会-周二下午1点至4点,100美元
建造工具研讨会-星期三上午9点至下午12点,100美元
npm研讨会-周三下午1点至4点,100美元

这是一个工作示例,您可能需要根据自己的具体需求对其进行调整

var$activities=$('.activities输入[type=“checkbox”]”);
//活动
var tuesMorn=0;
var tuesAft=0;
$activities.change(函数(){
var activityClass=$(this).closest('label').attr(“class”);
var isChecked=此项已检查;
如果(activityClass===“周二上午”){
tuesMorn=isChecked?tuesMorn+1:tuesMorn-1;
如果(tuesMorn>1){
警惕(“你早上报名的课太多了”);
}
}else if(activityClass==='tues_aft'){
tuesAft=isChecked?tuesAft+1:tuesAft-1;
如果(tuesAft>1){
警告(“你报名的船尾舱太多了”)
}
}
});
。周二上午{
背景:橙色;
}
星期二船尾{
背景:浅蓝色;
}

登记参加活动
主要会议-200美元
JavaScript框架研讨会-周二上午9点至下午12点,100美元
JavaScript库研讨会-周二下午1点到4点,100美元
快速工作坊-星期二上午9点至下午12点,100美元
Node.js研讨会-周二下午1点至4点,100美元
建造工具研讨会-星期三上午9点至下午12点,100美元
npm研讨会-周三下午1点至4点,100美元

谢谢!你能帮我解释一下这句话吗:tuesMorn=isChecked?tuesMorn+1:tuesMorn-1;这一行使用的是三元运算符。这是这个的简写:
if(isChecked){tuesMorn=tuesMorn+1;}else{tuesMorn=tuesMorn-1}
好的,谢谢!你的回答也很好——两个都很好。谢谢你,谢谢!你能帮我解释一下这句话吗:tuesMorn=isChecked?tuesMorn+1:tuesMorn-1;这一行使用的是三元运算符。这是这个的简写:
if(isChecked){tuesMorn=tuesMorn+1;}else{tuesMorn=tuesMorn-1}
好的,谢谢!你的回答也很好——两个都很好。谢谢如果您认为您的问题已得到回答,请将其中一个标记为“已接受的答案”。(最好是我的xD)如果您认为您的问题已经得到了回答,请您将其中一个标记为“已接受的答案”。(最好是矿山xD)