是否选中jQuery复选框的问题
我正试图通过选中并取消选中以下脚本下面的复选框来更改div的css dispaly属性:是否选中jQuery复选框的问题,jquery,Jquery,我正试图通过选中并取消选中以下脚本下面的复选框来更改div的css dispaly属性: <td> <input type="checkbox" id="c1" name="cc" /> <label for="c1"> <span> </span> Display : None </label> <input type="checkbox" id="c2" name="cc" /> <lab
<td>
<input type="checkbox" id="c1" name="cc" />
<label for="c1"> <span> </span> Display : None </label>
<input type="checkbox" id="c2" name="cc" />
<label for="c2"><span> </span> Display : Inline </label>
</td>
如您所见,我有两个复选框,我想在选中或取消选中第二个复选框时显示一个隐藏的div
您能告诉我为什么这不起作用吗?语法错误-其他一切正常: 我在这里看到了一些问题
radio
输入attr()
不是检查输入是否已检查的好方法。改用prop()
。请参见jQuery文档了解差异下面是一个简化的您的代码存在一些sintax问题
attr()
方法不能很好地获取值并进行所需的测试。相反,您可以使用is()
方法,检查是否已选中项目,如果为true。尝试这样做:
$('input:checkbox').change(function(){
$('#hiddendiv').css("display", $('#c2').is(':checked') ? "block" : "none");
});
PS:如果您想在更改事件中获取发送者(复选框已更改),可以通过$(此)
获取。您应该使用.prop()而不是.attr()
工作示例
“chekbox”的拼写有问题吗?语法错误,意外标记“;”你不应该使用无线电
输入吗?@Tim,谢谢我修复了拼写错误,但仍然不工作。我找到了错误。谢谢JSess,但我如何使用切换功能取消选中其他(未选中)框?如您所见,用户是否可以选择这两个框?如何防止这种情况发生?您可以将它们更改为每个()之间具有相同名称的单选按钮,或者在选择另一个复选框时使用jQuery删除选中的属性。您好,伊利亚G,谢谢您的评论,但我如何在复选框中使用它?谢谢VID,但我如何使用切换功能取消选中另一个(未选中)复选框?如您所见,用户是否可以选择这两个框?我们如何防止这种情况发生?谢谢,这很完美,但你能告诉我你是怎么做到的吗?我的意思是在这行$('input:checkbox')。不是(this).prop('checked',false)代码>thanks@user1760110要分解它,首先它会查找所有复选框$('input:checkbox')
,然后它会细化搜索所有不是“单击”的复选框。不是(此)
,最后它会通过此取消所有复选框的检查。prop('checked',false)
有意义吗?
$('input:checkbox').change(function(){
if($('#c2').attr('checked')){
$('#hiddendiv').css("display", "block");
}else{
$('#hiddendiv').css("display", "none");
}
});
$('input:checkbox').change(function(){
$('#hiddendiv').css("display", $('#c2').is(':checked') ? "block" : "none");
});
$('input:checkbox').change(function() {
$('input:checkbox').not(this).prop('checked', false);
if ($('#c2').prop('checked')) {
$('#hiddendiv').css({"display" : "block"});
} else {
$('#hiddendiv').css({"display" : "none"});
}
});