这是一个小提琴示例:http://jsfiddle.net/YxU2H/9/ 我试图在行中选择一个复选框或一个单选按钮。我尝试过的东西不起作用:
function selectedBox() {
var bothChecked = false;
var row = $(this).closest('tr');
var isCboxChecked = $('row', '#cbox').is(':checked');
var isRadChecked = $('row', '#rad').is(':checked');
//var isCboxChecked = $('#cbox').is(':checked'); //true or false
//var isRadChecked = $('#rad').is(':checked');
if (first == second) {
bothChecked = true;
//keep checkbox selected but deselect radio button
}
if (bothChecked == true) {
$('#cbox').attr('checked', false);
}
else {
$('#cbox').attr('checked', true);
}
} //);
然后我添加了一个onclick =" selectedBox();"到复选框和按钮。复选框的ID为cbox,单选按钮为rad
答案 0 :(得分:1)
而不是$('#cbox').attr('checked', false);
尝试
if (bothChecked == true) {
$('#cbox').removeAttr('checked');
}
else {
$('#cbox').attr('checked', 'checked');
}
修改强>
完整的解决方案就像这样
$("input:checkbox, input:radio").click(function(e) {
var row = $(this).closest('tr');
var chkBox = $(row).find(":checkbox");
var rdBtn = $(row).find(":radio");
if ($(chkBox).is(":checked") & $(rdBtn).is(":checked")) {
$(chkBox).removeAttr('checked');
}
});
我把它放在jsfiddle
答案 1 :(得分:1)
您可以将这两个功能放在document.ready
块
$('input[type="radio"]').click(function() {
if ($(this).attr('checked') == 'checked') {
var chk = $(this).closest('tr').find('input[type="checkbox"]:checked');
if (chk.length > 0) {
$(chk).removeAttr('checked');
}
}
});
$('input[type="checkbox"]').click(function() {
if ($(this).attr('checked') == 'checked') {
var rad= $(this).closest('tr').find('input[type="radio"]:checked');
if (rad.length > 0) {
$(rad).removeAttr('checked');
}
}
});
两者都互相监控,因此您将获得您的功能。尝试一下,为我工作。我已经更新了你的小提琴。这是http://jsfiddle.net/YxU2H/20/