2016-07-16 44 views
2

我有2組單選按鈕。當點擊組中的按鈕時,應該取消選中另一組中的任何按鈕,反之亦然。 我在下面試過,只有一次。 我認爲最聰明的方式是click()。但我無法理解它。有什麼建議麼?如何取消選中另一組中的某個單選按鈕

function uncheckRadioBtnSet(){ 
    if ($('[name="a"]').is(':checked')){ 
    $('input[name="b"]').removeAttr('checked'); 
    $(this).off('click'); 
    }else{ 
    $('input[name="a"]').removeAttr('checked'); 
    $(this).off('click'); 
    } 
} 

$("input[name='a']").click(function(){ 
    uncheckRadioBtnSet(); 
}); 
$("input[name='b']").click(function(){ 
    uncheckRadioBtnSet(); 
}); 

<input type="radio" name="a" value="1"><br> 
<input type="radio" name="a" value="2"><br> 
<input type="radio" name="a" value="3"><br> 

<h6> separator </h6> 

<input type="radio" name="b" value="4"><br> 
<input type="radio" name="b" value="5"><br> 
<input type="radio" name="b" value="6"><br> 
+1

爲什麼他們需要在2組,如果他們需要顯示像一個組的行爲? –

+0

謝謝,很好的問題。這兩個組在頁面上不能以多種原因組合。否則就會很清楚。 – Ray

回答

0

您可以使用此:

$("input[name='a']").click(function(){ 
    $('input[name="b"]').prop("checked", false); 
}); 
$("input[name='b']").click(function(){ 
    $('input[name="a"]').prop("checked", false); 
}); 

演示:https://jsfiddle.net/iRbouh/xn61vs1q/

0

如果我們對所有單選按鈕使用相同的名稱這將是確定

<input type="radio" name="a" value="1"><br> 
 
<input type="radio" name="a" value="2"><br> 
 
<input type="radio" name="a" value="3"><br> 
 
<h6> 
 
separator 
 
</h6> 
 
<input type="radio" name="a" value="4"><br> 
 
<input type="radio" name="a" value="5"><br> 
 
<input type="radio" name="a" value="6"><br>

1

根據新的要求試試這個nanocode :)

$("input[name='a'], input[name='b']").click(function(){ 
    $('input[name="'+{b: 'a',a: 'b'}[this.name]+'"]').prop("checked", false); 
}); 

Plunker


更新代碼

$("input[name='item_meta[313]'], input[name='item_meta[314]']").click(function(){ 
    $('input[name="'+{'item_meta[313]' : 'item_meta[314]', 'item_meta[314]' : 'item_meta[313]'}[this.name]+'"]').prop("checked", false); 
}); 

然而,可讀性的原因,你也可以這樣寫代碼:

var obj = { 
    'item_meta[313]' : 'item_meta[314]', 
    'item_meta[314]' : 'item_meta[313]' 
} 
$("input[name='item_meta[313]'], input[name='item_meta[314]']").click(function(){ 
    $('input[name="'+obj[this.name]+'"]').prop("checked", false); 
}); 

See this updated Plunker

+0

偉大的納代碼。謝謝。它似乎不適用於我的按鈕所具有的名稱。我不能改變他們,因爲他們是這樣設計的。名字就像這個item_meta [313] .. – Ray

+0

你的實際代碼中有多少組選擇框?在你的問題中,你提到了2,即'a'和'b' –

+0

是的。在這個設置中只有2個組。 – Ray

相關問題