Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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 如何创建一个无复选框来取消选中其他复选框(如果是';被选中_Javascript_Html_Jquery_Checkbox - Fatal编程技术网

Javascript 如何创建一个无复选框来取消选中其他复选框(如果是';被选中

Javascript 如何创建一个无复选框来取消选中其他复选框(如果是';被选中,javascript,html,jquery,checkbox,Javascript,Html,Jquery,Checkbox,如何创建一个不属于上述任何选项的复选框,因此当我选中该选项时,其余复选框应被取消选中,如果我尝试选中其他选项,则“无”复选框应自动取消选中 另外,如果未选中“无”复选框,则应强制用户选中至少1个剩余复选框 项目1 项目2 项目3 上述任何一项都不能这样做: $("[id^=box]").change(function() { if ($(this).is("#box4")){ $("[id^=box]").not($

如何创建一个不属于上述任何选项的复选框,因此当我选中该选项时,其余复选框应被取消选中,如果我尝试选中其他选项,则“无”复选框应自动取消选中

另外,如果未选中“无”复选框,则应强制用户选中至少1个剩余复选框


项目1
项目2
项目3

上述任何一项都不能这样做:

$("[id^=box]").change(function() {
  if ($(this).is("#box4")){
      $("[id^=box]").not($("#box4")).first().prop("checked",!$(this).is(":checked"))
  } else {
      $("#box4").prop("checked", !$("[id^=box]").not($("#box4")).is(":checked"));
  }
});
如果未选中前3个复选框中的任何一个,则会执行此操作;如果选中前3个复选框中的1个,则会选中复选框4;如果未选中前3个复选框中的1个,则会执行此操作

演示

$(“[id^=box]”)。更改(函数(){
如果($(此).is(“#方框4”)){
$(“[id^=box]”。不是($(“#box4”)).first().prop(“选中的”),!$(this.is(“:选中的”))
}否则{
$(“#box4”).prop(“选中的”),!$(“[id^=box]”)。not($(“#box4”)。is(“:选中”);
}
});

项目1
项目2
项目3
以上任何一项都没有
$('#复选框输入')。单击(函数(){
if($(this.attr('id')=='box4'){
如果($('input#box4:checked')。长度){
$(“输入框1”).prop(“选中”,false);
$(“input#box2”).prop(“checked”,false);
$(“input#box3”).prop(“checked”,false);
}否则{
$(“输入框1”).prop(“选中”,为真);
}
}否则{
如果($('input#box1:checked').length |$('input#box2:checked').length |$('input#box3:checked').length){
$(“输入框4”).prop(“选中”,false);
}否则{
$(“输入框4”).prop(“选中”,为真);
}
}
});

项目1
项目2
项目3
以上都没有

我把上面的两个答案组合在一起,效果很好

$('#复选框输入')。单击(函数(){
if($(this.attr('id')=='box4'){
如果($('input#box4:checked')。长度){
$(“输入框1”).prop(“选中”,false);
$(“input#box2”).prop(“checked”,false);
$(“input#box3”).prop(“checked”,false);
}否则{
$(“输入框1”).prop(“选中”,为真);
}
}else if($('input#box1:checked').length |$('input#box2:checked').length |$('input#box3:checked').length){
$(“输入框4”).prop(“选中”,false);
}
});
$(“[id^=box]”)。更改(函数(){
如果($(此).is(“#方框4”)){
$(“[id^=box]”。不是($(“#box4”)).first().prop(“选中的”),!$(this.is(“:选中的”))
}否则{
$(“#box4”).prop(“选中的”),!$(“[id^=box]”)。not($(“#box4”)。is(“:选中”);
}
});

项目1
项目2
项目3
以上都没有

看起来不错。一个问题:OP要求创建一个复选框,该复选框不包含上述内容,因此当我选中该选项时,似乎无法勾选“不包含上述内容”。它很好地自动勾选,但不能手动勾选。@freedomn-m很抱歉我错过了这一部分,对“创建复选框”有点困惑。由于上一个需求已经被创建得非常错误,所以它在没有
.first()
$(“[id^=box]”)的情况下工作得很好。而不是($(“#box4”).prop(“checked”),!$(this)。is(“:checked”)
@freedomn-m是我使用
.first()
的原因,因为op的要求至少要选中一个复选框。这就是为什么你有两个答案?@EnterNam尝试选择item2,然后再次取消选择,然后什么都没有选择。@CarstenLøvboAndersen,我不明白你的意思。你能详细告诉我吗?@Nikita我不明白你为什么要求投票?rep对你来说有这么重要吗?你的得票取决于你答案的质量。@Nikita请了解本网站的工作原理,如果你要谈论与问题/答案相关的问题,你应该将其保持在堆栈溢出状态,否则其他人很难看到问题/答案背后的想法。还说在更新答案之前需要更新投票是不好的。如果你的答案是好的,它通常会被提升,所以你不应该要求它。为什么你要将它们结合起来?它们中的任何一个都应该独立工作,答案之间的不同之处在于Nikitas和我的答案是我的答案会动态工作。因此,如果您添加更多复选框,您就不必更改js代码。如果我的答案没有按照您的要求工作,那么您为什么不回复我的答案,以便我可以改进它,使其按照您的要求工作?当你把这两个答案结合在一起时,你会发现你的代码为了同样的目的多次运行,这通常是一个坏主意。没关系,我只是想教你这个网站是如何工作的:)我刚刚写了一个完整的简单JavaScript示例,效果非常好。在回顾了你的问题之后,我意识到它缺少任何jQuery或JavaScript。您是否有任何jQ/JS代码可以发布为?