我有一个非常简单的问题——我在想——但我自己无法解决。
我有两个复选框:一个值为 Yes,另一个值为 No。
我需要某种脚本来帮助我在选中另一个时取消选中另一个。所以如果我选中复选框没有。1 - 复选框编号。2 自动取消选中 - 反之亦然。必须始终选中其中一个复选框 - 并且只有一个 -。不 - 在这种情况下我不能使用单选按钮。
如果可以在 jQuery 中完成,那就太好了 - 但任何帮助都可以:)
提前致谢
罗伯特
我能想到的最简单的方法是使用以下方法:
$('input:checkbox').change(
function(){
var group = this.name;
$(this).siblings('input:checkbox[name="'+ group + '"][checked]').removeProp('checked');
});
但是有一些警告,上面的用途removeProp()
仅限于 jQuery 1.6(大概及更高版本)。在 1.6 之前,应该可以removeAttr('checked')
替代。
但是,请重新考虑使用<input type="radio" />
元素,这正是它们旨在处理和使用的内容。
我按计划完成了这项工作,但是……在我的表格中,我有另一组复选框,尽管它们的名称完全不同,但它们也受到了限制。但我需要用户能够选择多个这些复选框。似乎该脚本会影响所有复选框组。我实际上认为通过输入 name="'+ group +'" 可以将功能限制为那些名称以“group”开头的复选框。但情况似乎并非如此。
分配change
事件处理程序的选择器$('input:checkbox')
选择/应用于页面上的所有复选框。
要将其仅应用于特定组中的那些复选框,您可以使用:
$('input:checkbox[name="checkboxGroupName"]').change(
function(){
$(this).siblings().removeProp('checked');
});
参考:
$("#checkbox1").bind('click', function(){ $("#checkbox2").removeAttr('checked'); });
$("#checkbox2").bind('click', function(){ $("#checkbox1").removeAttr('checked'); });
$('#checkbox_1').change(function() {
if ($(this).is(':checked')) {
$('#checkbox_2').prop('checked', false);
}
else {
$('#checkbox_1').prop('checked', false);
$('#checkbox_2').prop('checked', true);
}
});
$('#checkbox_2').change(function() {
if ($(this).is(':checked')) {
$('#checkbox_1').prop('checked', false);
}
else {
$('#checkbox_2').prop('checked', false);
$('#checkbox_1').prop('checked', true);
}
});
编辑:现在应该可以工作了:-)
function ChkBoxClicked() {
$("#chkBoxList_0").bind('click', function () { $("#chkBoxList_1").removeAttr('checked'); });
$("#chkBoxList_1").bind('click', function () { $("#chkBoxList_0").removeAttr('checked'); });
if (($('#chkBoxList_0').is(':checked')) || ($('#chkBoxList_1').is(':checked'))) {
if ($('#chkBoxList_0').is(':checked')) { alert('chkBoxList_0'); return false; }
if ($('#chkBoxList_1').is(':checked')) { alert('chkBoxList_1'); return false; }
} else {
alert('non of the chkBoxList'); return false;
}
}
我就是这样做的
$( document ).ready(function() {
$( ".checkbox1" ).click(function(event) {
$(this).parents('tr').children('td').children('.todos').prop('checked', false);
});
$( ".checkbox2" ).click(function(event) {
$(this).parents('tr').children('td').children('.checkbox1').prop('checked', false);
});
这基本上表明,当复选框 1 被选中并且用户尝试选中复选框 2 时,复选框 1 将被取消选中。