Jquery ui jQuery添加/删除选定收音机上的css类
我在这里读了一些解决方案,但我的问题在那些不起作用的地方差别很大。基本上,如果选中单选按钮,则向父div添加css类。如果未选中单选按钮,则删除css类。听起来很简单 我有多个单选按钮组,所以换句话说,一次将选择多个单选按钮。每个单选按钮组也位于页面的不同部分,由其他html分隔 以下是我的想法:Jquery ui jQuery添加/删除选定收音机上的css类,jquery-ui,Jquery Ui,我在这里读了一些解决方案,但我的问题在那些不起作用的地方差别很大。基本上,如果选中单选按钮,则向父div添加css类。如果未选中单选按钮,则删除css类。听起来很简单 我有多个单选按钮组,所以换句话说,一次将选择多个单选按钮。每个单选按钮组也位于页面的不同部分,由其他html分隔 以下是我的想法: $(document).ready(function () { $('input').click(function () { if ($('input:not(:check
$(document).ready(function () {
$('input').click(function () {
if ($('input:not(:checked)')) {
$('div').removeClass('style1');
}
if ($('input').is(':checked')) {
$(this).parent().addClass('style1');
}
});
});
我认为输入:not(:checked)的路径是正确的,但在下一行,它将从所有div元素中删除style1,而不是检查是否选中了其他divs单选按钮子项
我想我要问的是,如何编写一个脚本,当单击单选按钮时,向父级添加一个css类,然后在页面上找到所有具有子级输入的div标记。如果未选中divs子输入,请删除css类。因此,如果一个div有一个子input元素并选中了它,那么不要从inputs div中删除css类
我希望这是有意义的。假设您的单选按钮使用
name
属性对它们进行正确分组,当其中一个发生更改时,您可以找到具有相同名称的收音机,删除该类,然后将该类添加到已激活的收音机中
试试看:
为什么不使用以下选项:
我也有类似的问题,但我需要针对单选按钮的
标签
,而不是父div
元素。我还需要确保其他相关的标签元素没有类
以下是我根据@user113716的答案得出的结论:
HTML
MVC代码已删除,因此本示例中只有HTML
JavaScript
'use strict';
var o = 'label.input-check, label.input-radio';
$(o).find('input').change(function () {
$(o).find('input').filter('input[name="' + (this).name + '"]').each(function () {
$(this).parent(o).toggleClass('checked', (this).checked);
});
}).trigger('change');
演示:
如果需要的话,只需进行优化。一年后。。它仍然帮助某些人工作正常,但代码中似乎有非法字符。它很容易用提琴(红色标记)删除:当页面刷新时,即使选项仍处于选中状态,类也会丢失。顺便说一句:如果它对任何人都有帮助:我在输入字段本身(在父字段中)上使用了不透明度:0
因此,我可以使用背景图像作为检查状态。仅供参考,如果我直接复制,我的编辑器会出错。如果我复制/粘贴到此网站。我可以看到最后一个分号后面有一个红点。但是我在我的编辑器中看不到这个角色。
$(document).ready(function () {
$('input').click(function () {
$('input:not(:checked)').parent().removeClass("style1");
$('input:checked').parent().addClass("style1");
});
});
<ol class="list-group">
<li class="list-group-item">
<div class="input-group">
<label for="choice_ChoiceId" class="form-control">ChoiceDescription</label>
<span class="input-group-addon">
<input type="radio" id="choice_ChoiceId" value="choiceValue" name="choiceName" required />
</span>
</div>
</li>
</ol>
$(':radio').click(function () {
var _groupName = $(this).attr('name'),
_radioId = $(this).attr('id'),
_radioGroup = $(':radio[name="' + _groupName + '"]');
//remove class from all labels for this group of radio buttons
_radioGroup.each(function(){
$('label[for*="' + $(this).attr('id') + '"]').removeClass('style1');
});
//add the class to the selected radio button
$('label[for*="' + _radioId + '"]').addClass('style1');
});
'use strict';
var o = 'label.input-check, label.input-radio';
$(o).find('input').change(function () {
$(o).find('input').filter('input[name="' + (this).name + '"]').each(function () {
$(this).parent(o).toggleClass('checked', (this).checked);
});
}).trigger('change');