2012-07-19 40 views
0

這是一個小提琴的例子:http://jsfiddle.net/YxU2H/9/ 我想只在該行中選中一個複選框或單選按鈕。我試過的東西不起作用:如何在tr中只選擇一個輸入?

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();」複選框和按鈕。複選框有CBOX的ID和單選按鈕已RAD

+0

ID **必須是唯一的 – j08691 2012-07-19 20:21:55

+0

有幾個問題與HTML - ID需要是唯一的,使用複選框和單選按鈕的類。由於某些原因,所有複選框和單選按鈕似乎都被包裹在'

回答

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/

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

+0

小提琴,請仔細檢查它的功能。 – Marisa 2012-07-19 20:34:49

+0

哦,只是注意到你已經有一個工作的答案了...... – 2012-07-19 21:02:49

相關問題