jQuery逻辑的问题.如果选中了另一个复选框,则需要取消选中一个复选框,反之亦然
Problem with jQuery logic. Need to uncheck one checkbox if other is checked, vice versa
我有下面的代码
如果一个复选框被选中,它应该取消选中另一个复选框,然后显示一个div。如果另一个复选框被选中,它应该取消选中另一个复选框,并显示div。
它在一个方向上工作,而不是另一个方向。
我不知道怎样才能使两者兼顾。 $('#ssUseDates, #isSearchByDate').click(function() {
if($('#isSearchByDate').attr('checked')) {
$('#ssUseDates').removeAttr('checked');
$('#searchDates').show();
}
else if($('#ssUseDates').attr('checked')) {
$('#isSearchByDate').removeAttr('checked');
$('#searchDates').show();
}
如果我选中#ssUseDates框,然后选中#isSearchByDate框,它工作得很好,取消选中#ssUseDates框,然后显示div。如果我选中#isSearchByDate框,那么#ssUseDates框,它不工作,不会让框选中,也不会取消选中其他
谢谢您的建议
我认为共享click()
中的if...else...
是您的问题。试着把它分开:http://jsfiddle.net/TG2ne/6/
$(function() {
$('#isSearchByDate').click(function() {
if ($('#isSearchByDate').attr('checked')) {
$('#ssUseDates').removeAttr('checked');
$('#searchDates').show();
}
});
$('#ssUseDates').click(function() {
if ($('#ssUseDates').attr('checked')) {
$('#isSearchByDate').removeAttr('checked');
$('#searchDates').show();
}
});
});
或者(不太吸引人的),你也可以测试被点击元素的id:http://jsfiddle.net/TG2ne/11/
$(function() {
$('#ssUseDates, #isSearchByDate').click(function() {
if ($(this).attr("id") == "isSearchByDate" && $('#isSearchByDate').attr('checked')) {
$('#ssUseDates').removeAttr('checked');
$('#searchDates').show();
} else if ($(this).attr("id") == "ssUseDates" && $('#ssUseDates').attr('checked')) {
$('#isSearchByDate').removeAttr('checked');
$('#searchDates').show();
}
})
})
给两个相同的类名,并添加一个ref到你想显示的id,试试这个:
$('.checkClass').change(function() {
if($(this).is(':checked')) {
$('.checkClass').not(this).attr('checked', false).change();
$('#'+$(this).attr('ref')).show();
}
else {
$('#'+$(this).attr('ref')).hide();
}
});
这里有一个小提琴:http://jsfiddle.net/maniator/9dvDd/5/
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- 使用jquery选中/取消选中单个复选框
- 使用javascript在页面加载时取消选中所有复选框
- (取消)使用单独的复选框激活复选框列表
- jQuery-取消选中复选框
- 单击或取消选中复选框时,如何创建弹出的自定义窗口
- Javascript选中/取消选中所有复选框并将值写入文本区域
- dojo/cbtree取消选中所有复选框并选中选中复选框
- 通过选中和取消选中复选框来添加和删除数组中的值
- 当与之关联的 ng-model 为 false 时,Angularjs 复选框值不会取消选中
- 如何通过jQuery选中所有复选框并在单击一个复选框时取消选择
- 使用Javascript根据组中的值选中或取消选中复选框
- 选中和取消选中 JavaScript 中的复选框
- 可以't取消选中该复选框(取消选中复选框时隐藏内容)
- 在复选框取消选中事件中从HTML下拉列表中删除项目
- 如何使用复选框取消选中来清除单选按钮
- 复选框取消单击事件Javascript
- 选中复选框(取消)时显示另一个文本
- Javascript复选框取消选中其他复选框,反之亦然