Javascript 使单选按钮处于选中/取消选中状态
$input[type='radio']。每个函数{ 如果$this.is:已选中{ $this.css'background','blue'; } };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
您需要添加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好的,让我更新一下我的答案