Javascript jQuery逻辑有问题。如果选中了其他复选框,则需要取消选中其中一个复选框,反之亦然
我有下面的代码 如果选中复选框,则应取消选中另一个复选框,然后显示div。如果选中另一个复选框,则应取消选中另一个复选框,然后显示div 它是单向的,但不是双向的。我想不出如何使它同时起作用Javascript jQuery逻辑有问题。如果选中了其他复选框,则需要取消选中其中一个复选框,反之亦然,javascript,jquery,Javascript,Jquery,我有下面的代码 如果选中复选框,则应取消选中另一个复选框,然后显示div。如果选中另一个复选框,则应取消选中另一个复选框,然后显示div 它是单向的,但不是双向的。我想不出如何使它同时起作用 $('#ssUseDates, #isSearchByDate').click(function() { if($('#isSearchByDate').attr('checked')) { $('#ssUseDates').removeAttr('checked');
$('#ssUseDates, #isSearchByDate').click(function() {
if($('#isSearchByDate').attr('checked')) {
$('#ssUseDates').removeAttr('checked');
$('#searchDates').show();
}
else if($('#ssUseDates').attr('checked')) {
$('#isSearchByDate').removeAttr('checked');
$('#searchDates').show();
}
如果我选中#isSearchByDate框,然后选中#isSearchByDate框,它工作得很好,取消选中#isSearchByDate框,然后显示div。如果我选中#isSearchByDate框,那么#isSearchByDate框,它不工作,不会让框选中,也不会取消选中其他框
感谢您提供的任何建议。请提供相同的类名,并为要显示的id添加一个引用。请尝试以下操作:
$('.checkClass').change(function() {
if($(this).is(':checked')) {
$('.checkClass').not(this).attr('checked', false).change();
$('#'+$(this).attr('ref')).show();
}
else {
$('#'+$(this).attr('ref')).hide();
}
});
这里有一把小提琴:我认为共享的
click()
中的if…else…
是你的问题。尝试将其拆分:
或者(也不太吸引人),您还可以测试单击元素的id:
您正在使用哪个版本的jQuery?为什么不使用单选按钮?Kei,因为默认情况下,不会选中任何一个,并且用户必须能够取消选中这两个选项。这只是两个可以选择的选项,但可能不是。两者都公开一个日期范围,以使用下拉列表选择日期,但取决于选中的复选框确定数据库返回结果的方式。例如,按条件A搜索或按条件B搜索。您不能同时执行这两项操作,也可能不想执行这两项操作。:)很公平。。那么,这样做如何:3个单选按钮(1个隐藏并在加载时选择,2个用于您的选项)。当页面呈现时,您会看到两个未选中的单选按钮:)@iCONICA——请参阅对我的答案的更新。它又短又甜^嗨,尼尔。谢谢,但它并没有按要求工作。它永远不允许同时选中两个复选框。被选中的一个应取消选中另一个(如果选中)。它们显示的div是同一个div。我得到了:$('.chk').change(function(){if($(this).is(':checked')){$(''searchDates').show();}else{$('searchDates').hide()})@i-CONICA把你正在做的事情弄得一团糟,我们将从那里开始工作。^尼尔:我没有否决你的答案,但这可能是因为你的代码在选中新的复选框时没有取消选中复选框。嗨,mblase75。代码看起来很棒(第一块)。它的工作原理几乎完美,但如果用户打开一个框,它不会隐藏搜索日期(大家好,我自己计算出了这个部分。:D$(function(){$('isSearchByDate')。单击(function(){if($('isSearchByDate')。attr('checked')){$('IsSearchStates')。移除attr('checked');$('searchDates')。显示()}否则{$('searchDates')。隐藏()});$('sUserStates')。单击(function(){if($('searchDates.attr')。)('checked')){$('isSearchByDate')。移除属性('checked');$('searchDates')。显示();}其他{$('searchDates')。隐藏();}});
$(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();
}
});
});
$(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();
}
})
})