Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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检查是否选中了前7个复选框中的一个,然后隐藏元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery检查是否选中了前7个复选框中的一个,然后隐藏元素

Javascript jQuery检查是否选中了前7个复选框中的一个,然后隐藏元素,javascript,jquery,html,Javascript,Jquery,Html,我试图隐藏/显示一个元素,这取决于是否选中了组中的一个或多个复选框,我需要使用更改事件在任何复选框更改后触发它 以下是我所拥有的: // List of my checkboxes (first 7) var group = $('#ctl00_ContentPlaceHolder1_Common1_cbl_1_3_Are_any_sectors_prioritised_in_your_country_in_the_area_of_validation_CheckBoxList1 input:l

我试图隐藏/显示一个元素,这取决于是否选中了组中的一个或多个复选框,我需要使用更改事件在任何复选框更改后触发它

以下是我所拥有的:

// List of my checkboxes (first 7)
var group = $('#ctl00_ContentPlaceHolder1_Common1_cbl_1_3_Are_any_sectors_prioritised_in_your_country_in_the_area_of_validation_CheckBoxList1 input:lt(7)');


group.change(function () {
    if (group.filter(':checked').length > 0) {
    $("#ctl00_ContentPlaceHolder1_Common1_cbl_1_4_What_is_the_rationale_for_such_prioritisation_divContainer").show();
    }
    else {
    $("#ctl00_ContentPlaceHolder1_Common1_cbl_1_4_What_is_the_rationale_for_such_prioritisation_divContainer").hide();
    }
});
HTML:


A) 普通教育(义务/高中)
B) 初级兽医
C) 继续兽医
D) 成人教育
E) 高等教育
F) 劳动力市场部门——如适用,请指定部门/分支机构
G) 第三部门——如适用,请具体说明,例如青年部门、志愿部门等
H) 无优先权(所有部门的优先顺序相同)
一) 没有优先权(所有部门几乎没有活动)
J) 信息不可用
K) 不知道

这似乎不起作用,什么都不起作用。想知道为什么吗?

在复选框的
onchange
事件中,您可以这样做

if ($(".checker input:checkbox:checked").length > 0)
{
    // any one is checked
}
else
{
   // none is checked
}
编辑 您确实刚刚将选择器拼写错误,这是一个简单的错误:) 如果某个东西不正确,它不会立即成为错误,但你必须能够看到一些有时看不到的东西,因为这不会给你任何错误,但它也不起作用

首先要检查元素是否在文档中,以及是否使用了正确的属性来定位它,然后还可以检查拼写错误

有这么长的选择器是不正常的,我假设它们是动态创建的,但如果是这样的话,它就比你想象的更像一颗滴答作响的定时炸弹,因为当你更新创建选择器的代码时,你的JS会无缘无故地再次停止工作

我的建议是缩短选择器或对其进行硬编码,使其永远不会更改(使用不同的属性,如
class
maybe?)-如果您的ID是动态创建的,您迟早会遇到问题(除非您也动态生成执行此操作的jQuery代码)


起初的 刚刚创建了一个快速片段,说明如何通过jQuery使用
onchange
处理程序实现这一点

脚本可能无法工作的主要原因是

  • 可能拼写错误的过于复杂的选择器(一个字符足以导致不匹配)
  • 没有用于检查
    $(document).ready(fn)
    处理程序是否已启动的
    $(function(){…})
注意:这是一个包含CSS的示例,您当然希望使用自己的样式

$(function(){//等价于$(document).ready(fn)
$('#toggle').css('display','none');
var cb_group=$('.test cb:lt(7)')。on('change',function(){
if(cb_组过滤器(':checked').length)
$(“#切换”).show();
其他的
$(“#切换”).hide();
});
});
#切换{
宽度:300px;
高度:200px;
边框:2px实心#ddd;
线高:200px;
文本对齐:居中;
字体大小:30px;
}

1. 
2.
3.
4.
5.
6.
7.
8.
9
测试
try
input:checkbox:lt(7)
然后在更改事件处理程序中,它应该像
$(“#ctl00_ContentPlaceHolder1_Common1_cbl_1_4_What_is_the_prioritization_divContainer”)一样简单你能显示你的HTML吗?@ArunPJohny那什么都不做:/your code work?-首先选中两个框,取消选中它们,您将看到底部的测试文本消失,然后选中前7个框中的任何一个,它将再次出现
if ($(".checker input:checkbox:checked").length > 0)
{
    // any one is checked
}
else
{
   // none is checked
}