2016-04-26 203 views
0

我有一個checkbox和3 radio buttons,我想如果有複選框被選中選擇radio buttons之一,並擁有其中的任何未選中的,如果checkbox是聽之任之。複選框來控制單選按鈕

我的解決方案在第一次運行時工作,但不會在第一次單擊後選擇單選按鈕。

$('#checkbox-h-2g').click(function() { 
    if ($('#checkbox-h-2g').is(":checked")) { 
     $('#r1').attr('checked', true); 
    }if (!$('#checkbox-h-2g').is(":checked")) { 
     $('#r1 , #r2, #r3').attr('checked', false); 
    } 
}); 
+0

在你的第二個'if'你應該通過每個電臺使用的每個循環,使之未覈對改善。同樣應該去檢查變體。 – skywalker

回答

1

使用.prop(),而不是.attr()設置屬性,而且你的代碼可以作爲

$('#checkbox-h-2g').change(function() { 
    if (this.checked) { 
     $('#r1').prop('checked', true); 
    }else{ 
     $('#r1 , #r2, #r3').prop('checked', false); 
    } 
}); 
+1

因爲您可以使用鍵盤來檢查複選框,所以最好使用更改事件。 – jcubic

+0

你也可以正常使用鍵盤來點擊(空格鍵)變化事件只會在模糊時觸發 – mplungjan

+0

@jcubic,當checkbox的狀態改變時,許多瀏覽器調用'click'處理器。[Ref](https: //www.w3.org/TR/WCAG20-TECHS/SCR35) – Rayon