sto*_*id1 1 html javascript checkbox jquery
在StackOverflow上尝试多个示例来解决我的问题后,我仍然无法弄清楚我的问题.
我有3个复选框:
<input id="pets_dog" class="text" type="checkbox" class="pets" name="pets[]" value="pets_dog"> Dogs</input>
<input id="pets_cats" class="text" type="checkbox" class="pets" name="pets[]" value="pets_cats"> Cats</input>
<input id="pets_none" class="text" type="checkbox" class="pets" name="pets[]" value="pets_no"> None</input>
Run Code Online (Sandbox Code Playgroud)
当选中"pets_none"时,我需要取消选中其他2个复选框,反之亦然.这是我目前的jQuery代码:
$("#pets_none").change(function() {
if($("#pets_none").attr('checked')) {
$("#pets_cats").removeAttr('checked');
$("#pets_dogs").removeAttr('checked');
}
});
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么它不起作用的生活,并感谢任何帮助.
你的HTML应该是
<input id="pets_dog" class="text pets" type="checkbox" name="pets[]" value="pets_dog" /> Dogs
<input id="pets_cats" class="text pets" type="checkbox" name="pets[]" value="pets_cats" /> Cats
<input id="pets_none" class="text pets" type="checkbox" name="pets[]" value="pets_no" /> None???????????
Run Code Online (Sandbox Code Playgroud)
JS
$(function(){
$("#pets_none").on('change', function(e) {
if($(this).is(':checked')) {
$("#pets_dog").attr('checked', false);
$("#pets_cats").attr('checked', false);
}
});
});
Run Code Online (Sandbox Code Playgroud)
更新: 您已经使用了两次class属性,它应该如下所示
<input id="pets_dog" type="checkbox" class="pets text" name="pets[]" value="pets_dog" /> Dogs
<input id="pets_cats" type="checkbox" class="pets text" name="pets[]" value="pets_cats" /> Cats
<input id="pets_none" type="checkbox" class="text pets" name="pets[]" value="pets_no" /> None?
Run Code Online (Sandbox Code Playgroud)
JS
$(function(){
$(".pets").on('change', function(e) {
var el=$(this);
if(el.is(':checked') && el.attr('id')=='pets_none') {
$(".pets").not(el).attr('checked', false);
}
else if(el.is(':checked') && el.attr('id')!='pets_none')
{
$("#pets_none").attr('checked', false);
}
});
});
Run Code Online (Sandbox Code Playgroud)