Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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_Jquery_Html - Fatal编程技术网

Javascript 使单选按钮处于选中/取消选中状态

Javascript 使单选按钮处于选中/取消选中状态,javascript,jquery,html,Javascript,Jquery,Html,$input[type='radio']。每个函数{ 如果$this.is:已选中{ $this.css'background','blue'; } }; 您需要添加else以删除蓝色,如: $("input[type='radio']").each(function () { if ($(this).is(":checked")) { $(this).css('background', 'blue'); }else{ $(this).css('backgrou

$input[type='radio']。每个函数{ 如果$this.is:已选中{ $this.css'background','blue'; } };
您需要添加else以删除蓝色,如:

$("input[type='radio']").each(function () {
   if ($(this).is(":checked")) {
      $(this).css('background', 'blue');
   }else{
     $(this).css('background', 'white');
   }
});
您还可以为这些收音机附加一个单击事件,如:

$("body").on("click", "input[type='radio']", function () {
    $("input[type='radio']").css('background', 'white');
    $(this).css('background', 'blue');
});

JS的问题是,您从未从任何未选中的复选框中删除该类。还请注意,假设您没有将页面放置在事件处理程序中,则每个页面仅在页面加载时运行,但问题并未显示这一点,因此您需要在更改事件处理程序中运行逻辑:

var $radio = $("input[type='radio']").on('change', function() {
  $radio.removeClass('blue');
  $(this).toggleClass('blue', this.checked);
});
也就是说,使用CSS可以更简单地实现您的目标:

输入{ 可见性:隐藏; } 输入:之前{ 内容:; 位置:绝对位置; 宽度:20px; 高度:20px; 边界半径:50%; 背景色:CCC; 能见度:可见; } 输入:选中:之前{ 背景颜色:蓝色; }
我认为代码的问题在于,您使用的是每个事件,而不是更改或单击事件。这意味着您正在尝试更改单选按钮的颜色,甚至在用户执行任何操作之前。阅读以下代码,这将解决提交表单和自定义单选按钮的问题:

$.radio-button.clickfunction{ $this.addClassblue-background; $this.sides.removeclass蓝色背景; var radioID=$this.data'radio'; $+放射性d.attrcheed,checked; 如果$+放射性ID。同级:选中{ $+radiod.sibles.removeAttrchecked; } }; .蓝色背景{ 背景颜色:蓝色; } 输入[type='radio']{ 可见性:隐藏; } .单选按钮{ 高度:15px; 宽度:15px; 保证金:5px; 边界半径:50%; 显示:内联块; 边框:1px纯黑; }
为什么要关闭这个?问题很好,如果您在这里找到了解决方案,请选择一个答案。谢谢。现在我无法选择单选按钮。即使选中收音机,它也会将背景色设置为白色=选中现在我可以选择1个输入。我有15个单选按钮,但是用这个代码我只能选择一个。你有一个单选按钮,它一次只能选择一个,这不是你想要的吗?我有一个表格,首先我需要选择一些单选按钮,然后我提交表格。当页面重新加载时,我会检查输入是否:选中,如果是,则设置背景色。那很好,但是当我想把单选按钮从1改为2时,我会在两个收音机上都进行检查。上图。这是最新的提琴,你在操作中没有提到你有一组单独的单选按钮。谢谢。提交表单时,此代码不检查是否有:checked to input?为此,您可以检查checked input的数量:还有一些问题,例如,他没有使用click/change event,而是使用每个事件,这意味着用户实际上从未单击过单选按钮,那么,在提交表单后,如何提交正确的值。定制和颜色是次要的。鉴于问题中的逻辑要点完全是关于更改收音机的背景,我们认为定制和颜色是全部要点。尽管这里的问题是如何将所选div提交给form@RoryMcCrossan好的,让我更新一下我的答案